为了账号安全,请及时绑定邮箱和手机立即绑定

Windows上的fcntl替代品

Windows上的fcntl替代品

蝴蝶不菲 2019-11-13 15:33:59
我收到了一个Python项目(如果需要的话,它恰好是Django项目)使用fcntl了标准库中的模块,该库似乎仅在Linux上可用。当我尝试在Windows计算机上运行它时,它会以停止ImportError,因为此模块在此处不存在。我有什么办法可以对程序进行一些小的更改以使其在Windows上运行?
查看完整描述

3 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

fcntlWindows上的替代项是win32api调用。用法是完全不同的。这不是您可以直接拨动的开关。

换句话说,将fcntl-heavy-user模块移植到Windows并非易事。它要求您分析每个fcntl调用的确切功能,然后找到等效的win32api代码(如果有)。

也有可能某些使用的代码fcntl没有Windows等效项,这将要求您使用要移植的模块来更改模块api以及程序的结构/范例。

如果您提供有关fcntl呼叫的更多详细信息,人们可以找到Windows等效项。


查看完整回答
反对 回复 2019-11-13
?
烙印99

TA贡献1829条经验 获得超13个赞

fcntl模块仅用于锁定固定文件,因此,假设您不尝试多路访问,这是可以接受的解决方法。将此模块放在您的中sys.path,它应该可以作为正式的fcntl模块使用。


尝试仅在Windows中将此模块用于开发/测试目的。


def fcntl(fd, op, arg=0):

    return 0


def ioctl(fd, op, arg=0, mutable_flag=True):

    if mutable_flag:

        return 0

    else:

        return ""


def flock(fd, op):

    return


def lockf(fd, operation, length=0, start=0, whence=0):

    return


查看完整回答
反对 回复 2019-11-13
  • 3 回答
  • 0 关注
  • 2039 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信