我收到了一个Python项目(如果需要的话,它恰好是Django项目)使用fcntl了标准库中的模块,该库似乎仅在Linux上可用。当我尝试在Windows计算机上运行它时,它会以停止ImportError,因为此模块在此处不存在。我有什么办法可以对程序进行一些小的更改以使其在Windows上运行?
3 回答
慕仙森
TA贡献1827条经验 获得超7个赞
fcntl
Windows上的替代项是win32api
调用。用法是完全不同的。这不是您可以直接拨动的开关。
换句话说,将fcntl
-heavy-user模块移植到Windows并非易事。它要求您分析每个fcntl
调用的确切功能,然后找到等效的win32api
代码(如果有)。
也有可能某些使用的代码fcntl
没有Windows等效项,这将要求您使用要移植的模块来更改模块api以及程序的结构/范例。
如果您提供有关fcntl
呼叫的更多详细信息,人们可以找到Windows等效项。
烙印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
添加回答
举报
0/150
提交
取消