1

Ubuntu 13.10 ラップトップでソースから Python 3.3.0 をビルドしました。

コマンドを使用/usr/bin/virtualenv -p /python3.3.0/bin/python3 foo_virtして仮想環境を作成すると、実行時にモジュールがインストールされていないことがわかりますpip freeze。これは私が期待する動作です。

を使用する/python3.3.0/bin/python3 -m venv foo_virtと、大量のモジュールがインストールされていることがわかります。

(foo_virt) user@laptop:/foo_virt$ /usr/bin/pip freeze --local
Jinja2==2.7
Mako==0.8.1
MarkupSafe==0.15
PAM==0.4.2
Pillow==2.0.0
Pygments==1.6
SecretStorage==1.0.0
... (total of 75 modules listed)

次に、モジュールのドキュメントに従って実行して、その特定のバージョンの Python 用の pip をインストールしようとしました: python3 get-pip.py. しかし、これらのモジュールはすべて表示されます。

(foo_virt) user@laptop:/foo_virt$ which pip
/foo_virt/bin/pip
(foo_virt) user@laptop:/foo_virt$ pip freeze --local
Jinja2==2.7
Mako==0.8.1
MarkupSafe==0.15
PAM==0.4.2
Pillow==2.0.0
Pygments==1.6
SecretStorage==1.0.0
... (still 75 modules)

venv仮想環境にモジュールがインストールされないようにするにはどうすればよいですか? ドキュメントに役立つオプションが見つかりませんでした。また、この問題は Windows 7 では発生していません。ありがとうございます。

4

1 に答える 1

1

bash は、 を検索して見つかったコマンドをキャッシュしますPATH。と入力すると、現在のキャッシュを表示できますhash。追加する-rと、キャッシュがリセットされます。-d個人名を削除します。activate スクリプトを取得すると、キャッシュがリセットされます。

# This should detect bash and zsh, which have a hash command that must
# be called to get it to forget past commands.  Without forgetting
# past commands the $PATH changes we made may not be respected
if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
    hash -r
fi

get-pip.py の前にシステム pip を実行した可能性があります。その場合hash -d pip、問題を解決します。

于 2014-05-22T22:10:37.803 に答える