4

新しいvirtualenvを作成すると、新しいvirtualenvにvirtualenv .virtualenvs/my_envコピー/リンクされた標準のpythonモジュールのサブセットのみがあります。

たとえばls -l、.virtualenvs / my_env / lib / python2.6で実行すると、次のように表示されます。

...
... os.py -> /usr/lib/python2.6/os.py
... os.pyc -> /usr/lib/python2.6/os.pyc

ただし、のようなモジュールは、にある場合でもコピーさshutilurllib2ません/usr/lib/python2.6/shutil.py。Ubuntu9.10を使用しています。

これは予想される動作ですか?どうすればshutilなどのモジュールをvirtualenvにインストールできますか(これらのモジュールはpypiで見つかりませんでした)?

4

1 に答える 1

7

virtualenvは、システムライブラリのsys.pathに仮想環境を挿入するように変更しますが、システムライブラリはまだパス上にあるため、引き続きアクセス可能である必要があります。

したがって、たとえば、次のようにします。

>>> import os
>>> os
<module 'posixpath' from '/environments/userpython/lib/python2.6/posixpath.pyc'>
>>> import shutil
>>> shutil
<module 'shutil' from '/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/shutil.pyc'>

私のosモジュールは私の仮想環境からのものですが、shutilモジュールは私のシステムPythonからのものです。

于 2010-03-29T14:59:48.953 に答える