4

virtualenvを使い始めたばかりで、昨日まで正常に動作していました。さて、どこからともなく、システム環境と設定した環境を区別していません。例えば、

$ virtualenv some_env
New python executable in some_env/bin/python
Installing setuptools............done.
Installing pip...............done.

$ source some_env/bin/activate
(some_env)
$ yolk -l
Box2D           - 2.0.2b2      - active 
Django          - 1.4          - active 
Fabric          - 1.3.3        - active 
Markdown        - 2.1.1        - active 
[...and so on, listing all my system installs]

まず第一に、卵黄は機能してはいけません。元々、私は卵黄をenvにインストールしましたが、約5つのパッケージしか表示されませんでした。今ではすべてです。

また、誰かが尋ねる前に、私はvirtualenvの最新バージョンを持っているので、-no-site-packagesがデフォルトです。そのオプションを明示的に使用しても同じ結果が得られます。

何が起きてる?

4

1 に答える 1

3

virtualenv は、環境変数の先頭にある virtualenv に bin フォルダーを配置することで機能します。PATHこれにより、python を実行するたびに、制限付きの python 環境に再ルーティングされます。

ただし、あなたの場合、卵黄スクリプトがおそらくインストールされている/usr/local/bin/か、類似していると思われます-virtualenvをアクティブにした後でもアクセスできます。このスクリプトの先頭には、グローバル python インタープリターを指すシバンが含まれている可能性が高いため、virtualenv ではなくグローバル python 環境で実行されます。

virtualenv に yolk をインストールすると、そのバージョンの yolk スクリプトがパスで優先され、すべてが期待どおりに機能します。

于 2012-06-22T22:21:55.003 に答える