6

私のアプリは PyCurl を使用する必要があるため、Mac にインストールしようとしましたが、多くの問題とエラーが見つかりました。

要件: まず、私の Mac で動作する Python のバージョンは 32 ビット ベースであると言わなければなりません。これは、32 ビット Python を必要とする WxPython を使用する必要があるためです。これを行うために私は使用しました:

defaults write com.apple.versioner.python Prefer-32-Bit -bool yes

私が使用したPyCurlをインストールするには:

sudo env ARCHFLAGS="-arch x86_64" easy_install setuptools pycurl

そして端末は以下を返しました:

Best match: setuptools 0.6c11
Processing setuptools-0.6c11-py2.6.egg
setuptools 0.6c11 is already the active version in easy-install.pth
Installing easy_install script to /usr/local/bin
Installing easy_install-2.6 script to /usr/local/bin

Using /Library/Python/2.6/site-packages/setuptools-0.6c11-py2.6.egg
Processing dependencies for setuptools
Finished processing dependencies for setuptools
Searching for pycurl
Best match: pycurl 7.16.2.1
Processing pycurl-7.16.2.1-py2.6-macosx-10.6-universal.egg
pycurl 7.16.2.1 is already the active version in easy-install.pth

Using /Library/Python/2.6/site-packages/pycurl-7.16.2.1-py2.6-macosx-10.6-universal.egg
Processing dependencies for pycurl
Finished processing dependencies for pycurl

したがって、pycurl は正しくインストールされ、機能していると思いましたが、アプリを起動すると、python からエラーが返されました。

python /Users/lorenzodenobili/Desktop/Python/AGGIORNATORE_PY/Dropbox/wxPython/test.py  
Traceback (most recent call last):  
  File  "/Users/lorenzodenobili/Desktop/Python/AGGIORNATORE_PY/Dropbox/wxPython/test.py", line 20, in <module>  
    import pycurl  
  File "build/bdist.macosx-10.6-universal/egg/pycurl.py", line 7, in <module>  
  File "build/bdist.macosx-10.6-universal/egg/pycurl.py", line 6, in __bootstrap__  
ImportError: dlopen(/Users/lorenzodenobili/.python-eggs/pycurl-7.16.2.1-py2.6-macosx-10.6-universal.egg-tmp/pycurl.so,  2): no suitable image found.  Did find:  
    /Users/lorenzodenobili/.python-eggs/pycurl-7.16.2.1-py2.6-macosx-10.6-universal.egg-tmp/pycurl.so: mach-o, but wrong architecture  

このエラーを解決する方法がまったくわからないので、本当に助けが必要です!

4

2 に答える 2

2

pip と easy_install からインストールしようとしたときに、同じ問題に遭遇しました。pycurl ソースをダウンロードし、Snow Leopard 用にコンパイルすることで、インストールして動作させることができました。pycurl ソース ディレクトリで、install.txt にあるように「python setup.py install」を実行する前に、これを実行する必要があります。

gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -DHAVE_CURL_SSL=1 -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c src/pycurl.c -o build/temp.macosx-10.6-universal-2.6/src/pycurl.o

基本的に、これは を除いて同じコンパイル フラグで-arch PPCあり、Snow Leopard で失敗する原因となっていました。

上記のコマンドを実行したら、次を実行できます。

python setup.py install

そして、それはすべて機能するはずです。

于 2011-04-07T04:34:09.697 に答える
1

PyCurl をコンパイルするときに、次のフラグをコンパイラに渡しました。

ARCHFLAGS="-arch x86_64"

32 ビット Python を使用しているときに、PyCurl を 64 ビット モードでコンパイルしたようです。で試しましたARCHFLAGS="-arch i386"か?

于 2010-05-06T22:24:52.940 に答える