Le module fcntl est juste utilisé pour verrouiller le fichier d'épinglage, donc en supposant que vous n'essayez pas d'accès multiple, cela peut être une solution de contournement acceptable. Placez ce module dans votre sys.path , et il devrait fonctionner comme le module fcntl officiel.
Essayez d'utiliser ce module (source) à des fins de développement/test uniquement sous 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
Bien sûr, vous devez ensuite placer le fcntl.py module dans votre site-packages répertoire de l'interpréteur Python que vous souhaitez utiliser. Par exemple, %LOCALAPPDATA%\Programs\Python\Python310\lib\site-packages\fcntl\ . C'est là que mon site-packages Direct. Consultez Tutorialspoint pour trouver où se trouve le vôtre.
Le substitut de fcntl sur les fenêtres sont win32api appels. L'utilisation est complètement différente. Ce n'est pas un interrupteur que vous pouvez simplement actionner.
En d'autres termes, porter un fcntl -Le module utilisateur lourd pour Windows n'est pas trivial. Cela vous oblige à analyser exactement ce que chaque fcntl appel fait puis trouve l'équivalent win32api code, le cas échéant.
Il est également possible que du code utilisant fcntl n'a pas d'équivalent Windows, ce qui vous obligerait à modifier l'API du module et peut-être la structure/le paradigme du programme utilisant le module que vous portez.
Si vous fournissez plus de détails sur le fcntl appelle les gens peuvent trouver des équivalents Windows.