Windows에서 fcntl 대체
fcntl
Linux에서만 사용할 수있는 것으로 보이는 표준 라이브러리 의 모듈 을 사용하는 Python 프로젝트 (중요한 경우 Django 프로젝트)를 받았습니다. 내 Windows 컴퓨터에서 실행하려고하면 ImportError
이 모듈이 여기에 존재하지 않기 때문에으로 중지 됩니다.
Windows에서 작동하도록 프로그램을 약간 변경하는 방법이 있습니까?
fcntl
on windows 의 대체 는 win32api
호출입니다. 사용법은 완전히 다릅니다. 그냥 뒤집을 수있는 스위치가 아닙니다.
즉, fcntl
무거운 사용자 모듈을 Windows로 포팅하는 것은 간단하지 않습니다. 각 fcntl
호출이 정확히 무엇을하는지 분석 한 다음 동등한 win32api
코드가있는 경우이를 찾아야합니다 .
사용하는 일부 코드에 fcntl
해당하는 Windows가 없을 가능성도 있습니다.이 경우 모듈 API 및 포팅중인 모듈을 사용하는 프로그램의 구조 / 패러다임을 변경해야합니다.
fcntl
통화 에 대한 자세한 내용을 제공하면 사람들이 창에 해당하는 항목을 찾을 수 있습니다.
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
이것이 바로 도움이되지는 않지만 Unix (fcntl) 및 Windows (win32 api 호출) 모두에서 작동 할 수있는 대안이 있습니다. portalocker
파이썬을위한 플록 스타일 파일 잠금을위한 크로스 플랫폼 (posix / nt) API라고 설명합니다. 기본적으로 fcntl을 win32 api 호출에 매핑합니다.
이제 http://code.activestate.com/recipes/65203/ 의 원본 코드를 별도의 패키지로 설치할 수 있습니다 -https : //pypi.python.org/pypi/portalocker
참고 URL : https://stackoverflow.com/questions/1422368/fcntl-substitute-on-windows
'programing' 카테고리의 다른 글
C # 4 : 동적 형식의 실제 예 (0) | 2020.11.25 |
---|---|
Visual Studio 컴파일에서 파일을 제외하는 방법은 무엇입니까? (0) | 2020.11.24 |
스크립트 사용자에게 루트와 같은 권한이 있는지 확인하는 가장 좋은 방법은 무엇입니까? (0) | 2020.11.24 |
CharSequence []와 String []의 차이점은 무엇입니까? (0) | 2020.11.24 |
왜 찾을 수 없나요 (0) | 2020.11.24 |