2009-10-31 10 views
7

Pars와 i386 변형 두 가지 변종이 포함 된 범용 바이너리로 제공되는 타사 라이브러리 (Xerox의 유한 상태 도구에 대한 인터페이스)가 있습니다. 또한 라이브러리 (ctypes 사용) 파이썬 인터페이스가 있습니다.32 비트 모드에서 OS X 유니버설 바이너리 실행

하지만 파이썬 인터페이스와 함께 제공되는 예제 코드를 실행하려고 할 때 잘못된 아키텍처되는 라이브러리에 대해 불평 오류가 발생이 :

내가 무엇을 수집 할 수 있습니다에서
ImportError: dlopen(/Users/arne/sw/lib/libxcfsm.dylib, 10): no suitable image found. Did find:
/Users/arne/sw/lib/libxcfsm.dylib: mach-o, but wrong architecture

이는 파이썬 실행하기 때문에 내 라이브러리의 두 버전 외에 x86_64 변형을 내부적으로 가지고 있으며이 모드로 실행하는 것을 선호합니다. Python 실행 파일이 x86_64가 아닌 i386 버전을 시작하도록 강제 할 수있는 방법이 있습니까?

답변

17

당신이 (눈 표범에) 사과 시스템 파이썬을 사용하는 경우는

arch -i386 python 

예를 들어 그것을 실행할 수 있습니다

robin-mbp:~ $ arch -i386 /usr/bin/python2.6 -c "import sys; print sys.maxint" 
2147483647 

32 비트 모드에서 인터프리터를 시작합니다. 또한 시스템 파이썬 (VERSIONER_PYTHON_PREFER_32_BIT)에 설정할 수있는 환경 변수가 있습니다.

자신이 만든 파이썬 인 경우 현재 아치 선택과 관련된 버그가 있지만 this ticket에서 pythonw.c로 다시 빌드하면 정상적으로 작동합니다. 이 시스템 Python을 사용하지 않는 경우

+0

합니다. 고마워요! – arnsholt

3

, 당신은 가서 당신의 ~/.bash_profile에 한 줄을 추가 할 수 있습니다 그것을했다

export VERSIONER_PYTHON_PREFER_32_BIT=yes 
관련 문제