2015-11-18 6 views
9

私の本質的な問題は、私が--no-site-packagesを "働かせる"ことができないということです。Virtualenv、no-site-packages、sys.path

私はthis postを含むSOの記事を読んでいます。私は巨大なUbuntuのnoobですが、pythonがosとどのようにやりとりするかについてはあまりよくありません。

他の記事は、私は私のvirtualenvの中で午前ときprintenvprintenvは「PYTHONPATH」を一覧表示する表示されません、PYTHONPATHを表示していましたが、私が探しているべきであることは私はないんだけど、その特定dirであることをかなり可能だということを示唆しました大文字の代わりに認識しています。

しかし、私が気づいたのは、virtualenv内でpythonシェルを実行すると、すべてのグローバルパッケージがリストされていることです。

virtualenv.bashrcUbuntu、またはmy brainの問題があるかどうかわかりません。どんな助けでも大歓迎です。

ある種の知識豊富な魂が、私に一種の前後のプロセスで私を助けようとしているなら、とても感謝しています。正直言って、上記のほかに、どこから始めたらいいかわからないので、私は自分のアウトプットを列挙していません。

コメントを編集して編集します。 UTC:

[email protected]:~/Dropbox/$$ P/...$ source venv/bin/activate 
(venv)[email protected]:~/Dropbox/$$ P/...$ 

システムパッケージ:

(venv)[email protected]:~/Dropbox/$$ P/...$ pip freeze 
adium-theme-ubuntu==0.3.4 
apt-xapian-index==0.46 
beautifulsoup4==4.4.1 
bleach==1.4.2 
blinker==1.3 
cffi==1.1.2 
characteristic==14.3.0 
chardet==2.3.0 
colorama==0.3.3 
command-not-found==0.3 
.... 
virtualenv==13.1.2 
virtualenv-clone==0.2.6 
virtualenvwrapper==4.7.1 
wheel==0.26.0 
whitenoise==1.0.6 
xdiagnose==3.8.1 
zope.interface==4.1.2 
(venv)[email protected]:~/Dropbox/$$ P/...$ 

sys.path

環境に入る

[email protected]:~/Dropbox/$$ P/...$ virtualenv --no-site-packages venv 
New python executable in venv/bin/python 
Installing setuptools, pip, wheel...done. 

:2015

環境を起動する7:41 11月19日

(venv)[email protected]:~/Dropbox/$$ P/...$ python 
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload',  
'/home/notanambiturner/.local/lib/python2.7/site-packages', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client'] 
>>> 

あなたは明らかにサイトパッケージがsys.pathに含まれていることがわかります。これは非常に面倒です。

のpython3は、私はそれをpip freezeを使用する方法を知っている(あるいは私ができる場合)ではないことを、わずかに良いようだ:

(venv)[email protected]:~/Dropbox/$$ P/...$ python3 
Python 3.4.3+ (default, Oct 14 2015, 16:03:50) 
[GCC 5.2.1 20151010] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', 
'/usr/lib/python3.4', 
'/usr/lib/python3.4/plat-x86_64-linux-gnu', 
'/usr/lib/python3.4/lib-dynload', 
'/usr/local/lib/python3.4/dist-packages', 
'/usr/lib/python3/dist-packages'] 
>>> 

次編集。私のmind is bottledさらに。 UTC 08:00 1915年11月20日

私は陰謀理論家であるため、私はDropboxの外にvenvを作成しようとしました。

[email protected]:~$ source venv/bin/activate 
(venv)[email protected]:~$ pip freeze 
wheel==0.24.0 
(venv)[email protected]:~$ python 
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', 
'/home/notanambiturner/venv/lib/python2.7', 
'/home/notanambiturner/venv/lib/python2.7/plat-x86_64-linux-gnu', 
'/home/notanambiturner/venv/lib/python2.7/lib-tk', 
'/home/notanambiturner/venv/lib/python2.7/lib-old', 
'/home/notanambiturner/venv/lib/python2.7/lib-dynload', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/home/notanambiturner/venv/local/lib/python2.7/site-packages', 
'/home/notanambiturner/venv/lib/python2.7/site-packages'] 
    >>> 

何が... ... heck ...?私はそれが何らかの進歩だと思いますか?たぶん問題を引き起こしているファイル名(\ $ \ $ \ P /)と何か関係がありますか?私が読んだことから、私がsudo rm -rf venvと同じであれば、前に同じディレクトリにvirtualenvを作成して削除しても違いはありません。そうですか?

+3

環境に入り、pythonを実行して 'import sys;を実行してください。 Pythonの中でprint(sys.path) ';投稿した/受け取ったすべての入力と出力を編集して投稿に追加しますか? –

+1

あなたのvirtualenvをどのようにアクティブ化するかは、主に関連しています。完全なコマンドとその出力方法を投稿してください。 –

+0

ありがとうございました!私はこの素晴らしい迷惑な問題で私を助けてくれる誰かを持つことがどれほど良いと感じるかあなたに話すことはできません。あなたのコメントごとに投稿を編集しました。ご協力いただきありがとうございます! – NotAnAmbiTurner

答えて

0

(少なくともUbuntuでは)パス名に$を使用するとバグがあります。