61

zenlibそのsetup.pyファイルを使用してPythonライブラリをインストールしようとすると、奇妙な問題が発生します。ファイルを実行するとsetup.py、インポートエラーが発生します。

ImportError:Cython.Distutils`という名前のモジュールがありません

しかし、私はそのようなモジュールを持っており、問題なくpythonコマンドラインにインポートできます。なぜこのインポートエラーが発生するのでしょうか?

問題は、Ubuntu12.04に付属のPython2.7を使用するのではなく、直前にインストールしたEnthoughtPythonDistributionを使用していることに関係しているのではないかと思います。

その他の背景:setup.pyを実行しようとすると、次のようになります。

enwe101@enwe101-PCL:~/zenlib/src$ sudo python setup.py install
Traceback (most recent call last):
  File "setup.py", line 4, in <module>
    from Cython.Distutils import build_ext
ImportError: No module named Cython.Distutils

ただし、コマンドラインからは機能します。

>>> from Cython.Distutils import build_ext
>>> 
>>> from fake.package import noexist
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named fake.package

最初のインポートが機能し、2番目のインポートがエラーをスローすることに注意してください。これをsetup.pyの最初の数行と比較してください。

#from distutils.core import setup
from setuptools import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import os.path

Ubuntuに付属のPythonではなくEnthoughtPythonDistributionが、編集によってbash $ PATH環境変数~/.bashrcの前に追加し、これを最後の行として追加することで、デフォルトで実行されるものであることを確認しました。

export PATH=/usr/local/epd/bin:$PATH

そして実際にwhich python吐き出し/usr/local/epd/bin/pythonます...他に何を試すべきかわからないので、私は自分のサイトパッケージディレクトリに行き、( )、、、、およびファイルへの完全なアクセス許可(r 、 w 、/usr/local/epd/lib/python2.7/site-packagesx)を与えました。試してみるのはおそらくばかげているし、何も変わらなかった。CythonDistutilsbuild_ext.py__init__.py

次に何をしようか考えられない!?何か案は?

4

12 に答える 12

20

あなたのsudoは正しいpythonを取得していません。これは、Ubuntu での sudo の既知の動作です。詳細については、この質問を参照してください。完全なパスを使用して、sudo が正しい python を呼び出すことを確認する必要があります。

sudo /usr/local/epd/bin/python setup.py install

または、次のように実行します (bash で):

alias sudo='sudo env PATH=$PATH'
sudo python setup.py install
于 2012-12-10T09:25:42.210 に答える
10

python3用

sudo apt-get install cython3

python2 用

sudo apt-get install cython

詳細はこちらで読めます

于 2016-11-16T04:19:19.403 に答える
8

走る

which python

これは、システムがデフォルト設定した python へのパスでもあり、@tiago のメソッドに移動します。

sudo <output of which python> setup.py install

于 2013-12-12T16:54:50.467 に答える
5

あなたへのアドバイスは1つだけです:virtualenvを作成してください。これにより、Python のバージョンが 1 つだけになり、すべてのパッケージが (システム全体ではなく) ローカルにインストールされます。
解決策の1つになるはずです。

于 2013-08-12T12:36:09.573 に答える
1

CLI-python で、sys をインポートし、sys.path の中身を調べて
から、使用してみますexport PYTHONPATH=whatyougot

于 2012-06-20T14:38:05.337 に答える
-1

http://cython.org/#downloadから Cython をインストールし、このコマンドを使用してインストールします。

sudo python setup.py install

次に、コマンドを実行します

sudo python -c 'import Cython.Distutils'

インストールされ、エラーメッセージが消えます。

于 2013-08-12T12:06:57.273 に答える