2016-06-05 4 views
0

Linux/Windows/cygwin/etc를 확인할 수 있습니다. sys.platform을 사용하지만, WINE에서는 'win32'만보고합니다.파이썬 프로그램이 WINE에서 실행 중인지 확인하십시오.

pyserial을 사용하는 다중 플랫폼 응용 프로그램을 작성하려고하고 있으며 Windows 환경의 설치를 테스트하기 위해 WINE을 사용하고 있습니다. Windows 직렬 포트의 이름은 COMxx이지만 Linux의 경우에는/dev/ttyxxx입니다. 그러나 WINE의 직렬 포트에는 Linux 이름이 있습니다. Windows에서 별도로 WINE에서 실행 중인지 감지해야하므로 제대로 처리 할 수 ​​있습니다.

+1

차이점을 알 수있을 때'sys.platform'이''win32 ''일 때마다 리눅스 직렬 포트가 존재하는지 여부를 ('try/except'를 통해) 확인할 수있는 것처럼 보입니다. – martineau

답변

0

우선, 테스트되지 않은 상태에서 .wine/dosdevices/COM1에서/dev/ttyS0으로 심볼릭 링크를 만들어보십시오. 단순히 Windows 포트를 열 수 있습니다.

그러나 Wine에서 실행 중인지 여부를 확인하면 "공식적인"방법은 레지스트리에 "HKEY_LOCAL_MACHINE \ Software \ Wine"키가 있는지 확인하는 것입니다.

어느 쪽이든, COM1을 열면 Wine에서 작동하지 않는 것은 버그이며 Wine bugzilla에 제출해야합니다.

관련 문제