簡體   English   中英

Virtualenv,no-site-packages,sys.path

[英]Virtualenv, no-site-packages, sys.path

我的基本問題是我不能讓--no-site-packages “工作”。

我已經閱讀了SO上的一些帖子,包括這篇文章 我是一個巨大的Ubuntu noob,並且在python如何與os交互時並沒有更好。

其他帖子表明printenv會顯示PYTHONPATH當我在我的virtualenv時, printenv似乎沒有列出“PYTHONPATH”,但很有可能我應該尋找的是一個我不知道的特定dir而不是大寫字母。

然而,我注意到,當我在virtualenv中運行python shell時,列出了我的所有全局包。

我不確定這是不是virtualenv.bashrcUbuntumy brain 任何幫助將不勝感激。

如果那里有某種知識淵博的靈魂願意在一個來回的過程中幫助我,我會非常感激。 我沒有列出我的任何輸出,因為,老實說,除了上述之外,我不完全確定從哪里開始。

編輯以回應評論; UTC時間:2015年11月19日07:41

啟動環境:

notanambiturner@computer:~/Dropbox/$$ P/...$ virtualenv --no-site-packages venv
New python executable in venv/bin/python
Installing setuptools, pip, wheel...done.

進入環境:

notanambiturner@computer:~/Dropbox/$$ P/...$ source venv/bin/activate
(venv)notanambiturner@computer:~/Dropbox/$$ P/...$

系統包:

(venv)notanambiturner@computer:~/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)notanambiturner@computer:~/Dropbox/$$ P/...$ 

sys.path

(venv)notanambiturner@computer:~/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)notanambiturner@computer:~/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']
>>> 

下一個編輯。 我的思緒進一步被裝瓶 UTC 08:00 2015年11月19日

因為我是一個陰謀理論家,所以我嘗試在Dropbox之外創建一個venv。

notanambiturner@computer:~$ source venv/bin/activate
(venv)notanambiturner@computer:~$ pip freeze
wheel==0.24.0
(venv)notanambiturner@computer:~$ 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']
    >>> 

有沒有搞錯... ? 我的意思是,我認為這是一些進步? 也許我的文件名(\\ $ \\ $ \\ P /)與導致問題有關? 從我所讀到的,只要我sudo rm -rf venv ,我在同一目錄中創建和刪除virtualenv s應該沒有區別。 是對的嗎?

哎呀。

在路徑名中使用$時存在一個錯誤(至少在Ubuntu上)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM