我收到了一个Python项目(如果有关系的话,它恰好是一个Django项目),它使用了标准库中的fcntl
模块,它似乎只在Linux上可用。当我试图在我的Windows机上运行它时,它会停止并返回一个ImportError
,因为这里不存在这个模块。
有没有办法让我在程序中做一点小改动,让它在Windows上工作?
发布于 2009-09-14 15:54:36
windows上fcntl
的替代品是win32api
调用。用法完全不同。这不是你可以随意翻动的开关。
换句话说,将一个大量使用fcntl
的用户模块移植到windows并非易事。它要求您分析每个fcntl
调用到底做了什么,然后找到等效的win32api
代码。
还有一种可能是,使用fcntl
的一些代码没有windows等效项,这将需要您更改module api,也许还需要更改使用您要移植的模块的程序的结构/范例。
如果您提供有关fcntl
调用的更多详细信息,人们就可以找到windows等效项。
发布于 2014-08-24 20:05:33
fcntl模块仅用于锁定锁定文件,因此假设您不尝试多次访问,这可能是一种可接受的解决方法。把这个模块放在你的sys.path
中,它应该就像官方的fcntl模块一样工作。
尝试仅在windows中使用this module (source)进行开发/测试。
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
https://stackoverflow.com/questions/1422368
复制相似问题