【发布时间】:2011-06-22 06:19:29
【问题描述】:
我在我的 Ubuntu 10.04 服务器上安装了 virtualenv。
现在当我执行 pip freeze 时,它会显示以下包:
Django==1.2.4
distribute==0.6.10
python-apt==0.7.94.2ubuntu6.2
virtualenv==1.5.1
wsgiref==0.1.2
当我执行“pip uninstall Django”时,它会说:
pip uninstall Django
Uninstalling Django:
Proceed (y/n)? y
Successfully uninstalled Django
理想情况下,这应该卸载 Django,但事实并非如此。当我执行“pip freeze”时,我仍然可以看到相同的包。
现在请耐心等待,另一件奇怪的事情是,当我创建一个 virtualenv 然后在其中执行“pip freeze”时,我只看到一个包,那就是“wsgiref”,这很奇怪,因为理想情况下它应该是空白的。
此外,尽管使用 --no-site-packages 创建了这个 virtualenv,我仍然可以使用“django-admin.py startproject”创建一个新的 django 项目。
当我在这个 virtualenv 中启动 python 解释器并执行“import django”时,它给了我错误“没有名为 django 的模块”。
此外,当我尝试在 virtualenv 中安装“pip install Django”时,它会要求 sudo 权限,这在理想情况下不应该发生。
我该如何解决这个烂摊子。有什么方法可以重置所有 pep 和 virtualenv 吗?
【问题讨论】:
-
你可能用 apt 安装了 django? (如果是这样,它应该在 dist-packages 中)您可以运行 django-admin.py,因为它在 PATH 中。
-
不,不是。当我执行“dpkg -l”时,我在任何地方都看不到 django。此外,当我尝试“sudo apt-get remove django”时,它说“找不到包 django。python-django 也是如此。
-
@Sushi 从 virtualenv 外部启动的解释器在尝试
import django时是否仍然报错? -
@Sushi 如果
import django在virtualenv 之外工作,请执行import django;django.__path__。这将显示仍然安装 django 的路径。 -
未来,
toggle-site-packages将关闭您的 virtualenv 中未明确显示的内容,因此如果全局安装了一个包,您可以使用此命令禁用/启用它。
标签: python django virtualenv ubuntu-10.04 pip