라이브러리가 Mac OS X에 내장 된 32 비트 / 64 비트인지 확인하는 방법은 무엇입니까?
-
13-09-2020 - |
문제
pyqt / sip을 사용하는 데 문제가 있습니다.SIP가 64 비트로 컴파일되어 있지만 파이썬은 그것을 찾는 데 문제가 있습니다.
File "qtdemo.py", line 46, in import sip ImportError: dlopen(/Library/Python/2.6/site-packages/sip.so, 2): no suitable image found. Did find: /Library/Python/2.6/site-packages/sip.so: mach-o, but wrong architecture.
- 라이브러리 (SO / DYLIB)가 32 비트 또는 64 비트인지 어떻게 알 수 있습니까?
- Python이 32 비트 또는 64 비트인지 어떻게 알 수 있습니까?
해결책
file
도구를 사용하여 실행 파일을 식별 할 수 있습니다.
예 :
> file /Applications/TextEdit.app/Contents/MacOS/TextEdit
/Applications/TextEdit.app/Contents/MacOS/TextEdit: Mach-O universal binary with 2 architectures
/Applications/TextEdit.app/Contents/MacOS/TextEdit (for architecture x86_64): Mach-O 64-bit executable x86_64
/Applications/TextEdit.app/Contents/MacOS/TextEdit (for architecture i386): Mach-O executable i386
. 다른 팁
을 사용하는 Python 인스턴스에서 사용 가능한 아키텍처를 찾으십시오.
$ file "$( "$(which python)" -c "import sys;print(sys.executable)" )"
/usr/bin/python: Mach-O universal binary with 3 architectures
/usr/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture i386): Mach-O executable i386
/usr/bin/python (for architecture ppc7400): Mach-O executable ppc
.
파이썬이 현재 32 비트 또는 64 비트 (10.6 예제)를 실행 중인지 확인합니다.
$ /usr/bin/python2.6 -c "import sys;print('%x'%sys.maxint)"
7fffffffffffffff
$ arch -x86_64 /usr/bin/python2.6 -c "import sys;print('%x'%sys.maxint)"
7fffffffffffffff
$ arch -i386 /usr/bin/python2.6 -c "import sys;print('%x'%sys.maxint)"
7fffffff
$ arch -ppc /usr/bin/python2.6 -c "import sys;print('%x'%sys.maxint)"
7fffffff
.
python3의 경우 sys.maxsize
용 sys.maxint
대체 :
$ python3 -c "import sys;print('%x'%sys.maxsize)"
7fffffff
. lipo -info target/libexample-df07142d9bfd950a.a
input file target/libexample-df07142d9bfd950a.a is not a fat file
Non-fat file: target/libexample-df07142d9bfd950a.a is architecture: x86_64
.
또는
lipo -info `which python`
Non-fat file: /usr/local/bin/python is architecture: x86_64
.
file
를 사용하지 마십시오.
제휴하지 않습니다 StackOverflow