Il modulo fcntl viene utilizzato solo per bloccare il file di blocco, quindi supponendo che tu non provi l'accesso multiplo, questa può essere una soluzione accettabile. Inserisci questo modulo nel tuo sys.path , e dovrebbe funzionare solo come modulo fcntl ufficiale.
Prova a utilizzare questo modulo (sorgente) per scopi di sviluppo/test solo in 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
Ovviamente, allora devi inserire il fcntl.py modulo nel tuo site-packages directory per l'interprete Python che si desidera utilizzare. Ad esempio, %LOCALAPPDATA%\Programs\Python\Python310\lib\site-packages\fcntl\ . Qui è dove il mio site-packages abitare. Controlla Tutorialspoint per scoprire dove si trova il tuo.
Il sostituto di fcntl su Windows sono win32api chiamate. L'utilizzo è completamente diverso. Non è un interruttore che puoi semplicemente capovolgere.
In altre parole, il porting di un fcntl -heavy-user per Windows non è banale. Ti richiede di analizzare cosa esattamente ogni fcntl call fa e poi trova l'equivalente win32api codice, se presente.
C'è anche la possibilità che del codice utilizzi fcntl non ha un equivalente di Windows, il che richiederebbe di modificare l'API del modulo e forse la struttura/paradigma del programma utilizzando il modulo che stai portando.
Se fornisci maggiori dettagli sul fcntl chiama le persone possono trovare equivalenti di Windows.