10

virtualenv に問題があります。私は定期的に使用しており、開発マシンといくつかのサーバーで使用しています。しかし、私が使用しようとしたこの最後のサーバーでは、問題が発生しました。

--no-site-packages 引数を使用して virtualenv を作成し、virtualenv 内にいくつかの python モジュールをインストールしました。モジュールが virtualenvs site-packages 内にあることを確認でき、すべて問題ないようです。

しかし、次のことをしようとするsource virtualenv/bin/activateと、モジュールの1つをpython import modulenameインポートすると、モジュールが存在しないというインポートエラーが発生します。これはどのように起こっているのですか?発動しているといっても発動しないようです。

誰でもこれを修正する方法の手がかりを持っていますか?

4

3 に答える 3

19

このマシンで「python」の bash エイリアスがアクティブになっている可能性はありますか? これは、activate によって行われた PATH の変更よりも優先され、間違った python バイナリが使用される可能性があります。

virtualenv/bin/python を直接実行してみて (アクティブ化する必要はありません)、モジュールをインポートできるかどうかを確認してください。

これで問題が解決した場合は、python bash エイリアスを削除するだけです。

于 2009-12-15T20:46:57.980 に答える
9

仮想環境をアクティブ化したら、次を試してください。

$ python
>>> import sys
>>> sys.executable
...

...そして、期待される実行可能ファイルを実行しているかどうかを確認します。

また、チェックしてください:

>>> sys.path
[...]
于 2009-12-15T22:21:52.687 に答える
0

IIRC、アクティブ化スクリプトは仮想環境を最初にパスに配置するだけなので、「python」と入力すると、最初に仮想環境内の環境が検索されます。activate スクリプトが失敗した場合は、いつでもパスを手動で編集できます。また、ここに移動して「アクティブ化」を検索してください: http://pylonsbook.com/en/1.1/installing-pylons.html#setting-up-a-virtual-python-environment。これにより、activate コマンドが失敗する理由がわかります。

于 2009-12-15T17:36:56.087 に答える