【发布时间】:2016-02-20 14:32:56
【问题描述】:
我的基本问题是我无法让--no-site-packages“工作”。
我已经阅读了很多关于 SO 的帖子,包括 this post。我是一个巨大的 Ubuntu 菜鸟,在 python 如何与操作系统交互方面也好不到哪里去。
其他帖子建议printenv 将显示 PYTHONPATH 当我在我的 virtualenv 中时,printenv 似乎没有列出“PYTHONPATH”,但很有可能我应该寻找的是一个特定的 dir我不知道而不是大写字母。
然而,我注意到的是,当我在 virtualenv 中运行 python shell 时,我所有的全局包都被列出了。
我不确定这是否是 virtualenv、.bashrc、Ubuntu 或 my brain 的问题。任何帮助将不胜感激。
如果有善良、知识渊博的人愿意在一个来回的过程中帮助我,我将非常感激。我没有列出我的任何输出,因为老实说,除了上述之外,我不完全确定从哪里开始。
响应 cmets 进行编辑; 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']
>>>
下一次编辑。我的mind is bottled 进一步。 UTC 2015 年 11 月 19 日 08:00
因为我是一名阴谋论者,所以我尝试在 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,我之前在同一目录中创建和删除virtualenvs 应该没有什么区别。对吗?
啊。
【问题讨论】:
-
能不能进入环境,运行python,在python里面运行
import sys; print(sys.path);然后通过编辑将您所做/收到的所有输入和输出添加到您的帖子中? -
这主要与如何为您的 virtualenv 激活有关。请发布完整的命令及其运行方式的输出。
-
谢谢各位!我无法告诉你有人帮助我解决这个超级烦人的问题感觉有多好。我已经根据您的 cmets 编辑了帖子。感谢您的帮助!
-
看起来像路径引用中的错误。如果您可以在 Dropbox 外部复制它,您可能会报告这一点。您可以安全地删除虚拟环境。
-
如果您不知道,“--no-site-packages 已弃用。保留只是为了向后兼容。现在无法访问全局站点包是默认行为。”
标签: python ubuntu virtualenv pythonpath sys