2012-03-17 14 views
0

sudo pip install virtualenv経由でvirtualenvをインストールし、いくつかの環境を作成しました。しかし、今私はデフォルトの "グローバルな" Pythonパスが完全になくなったことを発見しています。新鮮なターミナルでVirtualenvのインストール後にデフォルトのPythonパスを修正する方法

、私のような出力が表示されます。ここで何が起こっている

[email protected]:~$ sudo pip install django 
Requirement already satisfied (use --upgrade to upgrade): django in /usr/local/lib/python2.7/dist-packages 
Cleaning up... 
[email protected]:~$ ls /usr/local/lib/python2.7/dist-packages/django 
bin contrib db  forms __init__.py middleware template  test views 
conf core  dispatch http __init__.pyc shortcuts templatetags utils 
[email protected]:~$ python 
Python 2.7.2+ (default, Oct 4 2011, 20:06:09) 
[GCC 4.6.1] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import django 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named django 
>>> 

?グローバルPythonインストールをインストールされたパッケージを見ることができるように修正するにはどうしたらいいですか?

+1

私はあなたが実行するとどうなるか興味が '' sys.path'はそのpythonの内部のように見える、と何これpython'、また 'sudo python'が' django'パッケージについて知っている場合にも有効です。 – zigg

+0

@zigg、良い考え。それらは私が問題をより迅速に認識するのに役立ちました。 – Cerin

答えて

0

はちょうど

PYTHONPATH=path1;path2;etc; 
echo $PYTHONPATH 

環境変数を設定し、それはこの問題は、私自身のせいだったあなたは

+0

私は自分のPYTHONPATHの設定方法を知っています。私はなぜそれが完全に始まったのか尋ねています? – Cerin

1

を指定したパスを使用する必要があります。私は間違って〜/ bin、〜/ local、〜/ libのようなフォルダを作成し、ホームディレクトリにvirtualenv --no-site-packages .を実行してしまい、Pythonがそのパッケージを探していました。これらのディレクトリを削除すると、問題が解決されました。

0

sudoを使用してvirtualenvをインストールするだけで、他のものはすべてsudoなしで実行する必要があります。

--no-site-packagesも使用する必要があります。これは、ご使用の環境に競合するバージョンのパッケージがないことを確認するためです。

これを行うための適切な方法は次のとおりです。

$ sudo apt-get install python-virtualenv 
$ virtualenv --no-site-packages django_env 
$ source django_env/bin/activate 
(django_env)$ pip install -U django 

あなたがグローバルパスから何かが必要な場合は、仮想環境にインストールする必要があります。そうすれば、freeze your environmentには、アプリケーションに必要なものだけが手に入ります。お使いの環境でのパッケージの一覧が表示されますyolkを、インストールすることができます

(django_env)$ pip install yolk 
(django_env)$ yolk -l 
+0

私は卵黄のポイントを理解していません。それはどうしているのですか? grep'はできませんか? – Cerin

+0

あなたがピップを持っていなくても、卵黄は機能します。パッケージを表示するだけでなく、 'yolk -U'がPyPiをチェックするなど、インストールされているパッケージが更新されているかどうかを確認するよりもはるかに多くのことがあります。 –

関連する問題