如何在安装Virtualenv后修复默认Python路径

如何在安装Virtualenv后修复默认Python路径,python,django,virtualenv,pip,Python,Django,Virtualenv,Pip,我通过sudo-pip-install-virtualenv安装了virtualenv,并创建了一些环境。但现在我发现我默认的“全局”Python路径完全消失了 在一个新的终端中,我看到如下输出: user@localhost:~$ sudo pip install django Requirement already satisfied (use --upgrade to upgrade): django in /usr/local/lib/python2.7/dist-packages Cl

我通过
sudo-pip-install-virtualenv
安装了virtualenv,并创建了一些环境。但现在我发现我默认的“全局”Python路径完全消失了

在一个新的终端中,我看到如下输出:

user@localhost:~$ sudo pip install django
Requirement already satisfied (use --upgrade to upgrade): django in /usr/local/lib/python2.7/dist-packages
Cleaning up...
user@localhost:~$ 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
user@localhost:~$ 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
>>> 
user@localhost:~$sudo pip安装django
已满足要求(使用--升级到升级):django in/usr/local/lib/python2.7/dist-packages
清理。。。
user@localhost:~$ls/usr/local/lib/python2.7/dist-packages/django
bin contrib db forms__init__.py中间件模板测试视图
conf core dispatch http _uinit _;.pyc快捷方式templatetags utils
user@localhost:~$python
Python 2.7.2+(默认值,2011年10月4日,20:06:09)
[GCC 4.6.1]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口django
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为django的模块
>>> 

这是怎么回事?如何修复我的全局Python安装,以便它可以查看已安装的软件包?

只需设置环境变量即可

PYTHONPATH=path1;path2;etc;
echo $PYTHONPATH

它应该使用您指定的路径。这个问题是我自己的错。我不小心运行了
virtualenv——没有站点包。
在我的主目录中,创建了像~/bin、~/local、~/lib这样的文件夹,Python在那里寻找它的包,而那里没有。删除这些目录修复了问题。

您应该只使用sudo安装virtualenv,其他所有操作都应该在没有sudo的情况下完成

您还应该使用
--无站点软件包
,因为这样可以确保您的环境中没有冲突版本的软件包

正确的方法是:

$ sudo apt-get install python-virtualenv
$ virtualenv --no-site-packages django_env
$ source django_env/bin/activate
(django_env)$ pip install -U django
如果您需要全局路径中的任何内容,应该将其安装到虚拟环境中。这样,您将只获得应用程序所需的内容

您可以安装,它将列出您环境中的软件包:

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

我知道如何设置我的蟒蛇路径。我在问为什么它一开始就完全消失了?我很好奇如果运行
哪个python
sys.path
在该python中是什么样子,并且
sudo python
知道
django
包会发生什么。@zigg,想法不错。这些会帮助我更快地认识到这个问题。我不明白蛋黄的意义。它能做什么,而不是什么,
pip-freeze | grep
做不到的?即使你没有pip,蛋黄也能起作用。它不仅仅是列出软件包,还有很多内容,例如,
yolk-U
检查PyPi是否对已安装的软件包进行了任何更新。