4

私はUbuntuでvirtualenvを使用してきましたが、それはうまくいくので、Macで使用しようとしていますが、問題が発生しています。

virtualenvコマンドはディレクトリを正常に作成し、そこにパッケージを喜んeasy_installでインストールしますが、インストールしたものをインポートできません。sys.pathが正しく設定されていないようです。オプションsite-packagesを使用しても、 virtual が含まれていません。--no-site-packages私は何か間違ったことをしていますか?

Mac OS 10.5.6でPython 2.5.1とvirtualenv 1.3.3を使用しています

編集: virtualenv を使用しようとすると、次のようになります。

$ virtualenv test
New python executable in test/bin/python
Installing setuptools............done.
$ source test/bin/activate
(test)$ which python
/Users/Justin/test/bin/python
(test)$ which easy_install
/Users/Justin/test/bin/easy_install
(test)$ easy_install webcolors
[...]
Installed /Users/Justin/test/lib/python2.5/site-packages/webcolors-1.3-py2.5.egg
Processing dependencies for webcolors
Finished processing dependencies for webcolors
(test)$ python
[...]
>>> import webcolors
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named webcolors
>>> import sys
>>> print sys.path
['',
 '/Library/Python/2.5/site-packages/SQLObject-0.10.2-py2.5.egg',
 '/Library/Python/2.5/site-packages/FormEncode-1.0.1-py2.5.egg',
 ...,
 '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5',
 '/Users/Justin/test/lib/python25.zip',
 '/Users/Justin/test/lib/python2.5',
 '/Users/Justin/test/lib/python2.5/plat-darwin',
 '/Users/Justin/test/lib/python2.5/plat-mac',
 '/Users/Justin/test/lib/python2.5/plat-mac/lib-scriptpackages',
 '/Users/Justin/test/Extras/lib/python',
 '/Users/Justin/test/lib/python2.5/lib-tk',
 '/Users/Justin/test/lib/python2.5/lib-dynload',
 '/Library/Python/2.5/site-packages',
 '/Library/Python/2.5/site-packages/PIL']

編集 2 :activate_this.pyスクリプトの使用は機能しますが、実行source bin/activateは機能しません。問題を絞り込むのに役立つことを願っていますか?

4

2 に答える 2

5

同じ OS X/Python/virtualenv バージョン (OS X 10.5.6、Python 2.5.1、virtualenv 1.3.1) で問題は発生していません。

$ virtualenv test
New python executable in test/bin/python
Installing setuptools............done.
$ source test/bin/activate
(test)$ which python
/Users/dbr/test/bin/python
$ echo $PATH
/Users/dbr/test/bin:/usr/bin:[...]
$ python
[...]
>>> import sys
>>> print sys.path
['', '/Users/dbr/test/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg',

確認すべきことの 1 つ - クリーン シェルで、次のコマンドを実行します。

$ virtualenv test
$ python
[...]
>>> import sys
>>> sys.path
['', '/Library/Python/2.5/site-packages/elementtree-1.2.7_20070827_preview-py2.5.egg'[...]
>>> sys.path.append("test/bin/")
>>> import activate_this
>>> sys.path
['/Users/dbr/test/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg'

または、virtualenv ドキュメントから:

activate_this = '/path/to/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

これにより、現在の Python シェルが virtualenv に強制的に入れられるはずです

また、フラグ (詳細)source test/bin/activateを指定して python を実行してみてください。-v

于 2009-05-09T16:00:13.127 に答える
2

virtualenv に関する私の問題は私自身のせいであることが判明しまし.bash_profilePYTHONPATH。環境変数をいじるように構成したため、インポートの問題が発生しました。

時間を割いて回答してくださった皆様、ありがとうございました。自分で問題をさらに調査しなかったことをお詫び申し上げます。

于 2009-05-21T23:54:38.483 に答える