1

私のシステム:Mac OS X 10.6.8、gcc 4.2、python 2.7、xcode 3.2.3

私はpython2.7を使用していますが、実行しようとするとエラーが発生しました:import objc、それは:を返しますImportError: No module named objc

objcモジュールがないようです。しかし実際には、objcモジュールはすでにインストールされています。Snow Leopardにはpyobjcがプリインストールされており、python2.6を使用してこれも確認しました(Macにはpython 2.7と2.6があります)。したがって、import objcpython2.6を使用して呼び出すと、エラーは発生しません。つまりobjc、存在し、そのモジュールを問題なく使用できます...しかし、python 2.7を使用してインポートすると、ImportError: No module named objcエラーが発生します。

誰かが解決策を持っていますか?参考までに、Python2.6にはOS Xがプリインストールされていますが、2.7は手動でインストールされています。私は2.7を数ヶ月問題なく使用しています。

4

2 に答える 2

4

のような Python C 拡張モジュールobjcは、Python バージョン間で再利用できません。objc2.7 用のモジュールを個別にインストールする必要があります。

通常、異なる python インストール (2.6、2.7、または 3.2 など) では、個別のモジュール インポート場所を使用し、通常はpython セットアップごとに拡張機能をインストールします。

于 2012-07-02T13:50:28.843 に答える
2

一般に、1 つの Python インストールでインストールされたパッケージは、他の Python インストールでは使用できません。sys.path@MartijnPieters が指摘したように、いじって(または環境で PYTHONPATH を設定して) モジュールを共通の場所にインストールすることで、それらを利用可能にすることができます。C 拡張機能の場合は、再構築する必要があります。 Python 2.7 用のモジュール (そして、一般的な場所に置くことはできません)。通常、これは次のように簡単です。

<sudo> python2.6 setup.py install #install for python 2.6
<sudo> python2.7 setup.py install #install for python 2.7

コマンドpythonは通常、好みの python インストールへの (ソフト) リンクに過ぎないためです。

sudo は、python 実装がパス上のどこにあるかによって必要になる場合と必要でない場合があります。

ちなみに、これは純粋な python モジュールでも機能します。通常、ソース コードはそれほど多くのスペースを占有しないため、python 2.6 と python 2.7 の間を行き来する場合は、これがすべてのモジュールをインストールする良い方法かもしれません。

easy_installパッケージのインストールにを使用している場合も同様です。

easy_install-2.6 somepackage
easy_install-2.7 somepackage
于 2012-07-02T13:55:36.543 に答える