【问题标题】:Django not installing in virtualenvDjango没有安装在virtualenv中
【发布时间】:2014-03-24 12:35:13
【问题描述】:

我正在使用 Linux (Lubuntu) 并且已经像这样安装了 virtualenv

sudo easy_install virtualenv

然后做了

mkdir virt_env

并创建了一个包含 virtualenv 的文件夹。接下来,我做了

virtualenv virt_env/virt1 --no-site-packages

并创造了环境。接下来,我这样激活它:

source virt_env/virt1/bin/activate

一切顺利。然后,我做到了

sudo pip install Django

它说它已成功安装。然后我做了

pip freeze

并且没有列出 Django。我停用了 virtualenv 并做了

pip freeze

Django 就在那里。为什么它在系统范围内而不是在 virtualenv 中安装 Django?然后我再次激活了 virtualenv 并尝试了

sudo pip install Django

它说

Requirement already satisfied (use --upgrade to upgrade): Django in /usr/local/lib/python2.7/dist-packages

如何将它安装在 virtualenv 而不是系统范围内?

【问题讨论】:

  • 不要使用sudo 安装。首先使用 virtualenv 的原因之一是您作为当前用户直接在其中安装东西。我不确定,但使用 sudo 可能会完全忽略 virtualenv,因此是你的问题。
  • @DanielRoseman 如果我只在 virtualenv 中执行“pip install Django”,则会出现错误,并且回溯中的最后几行是“File”/home/vert_env/virt1/lib/python2.7 /os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 13] Permission denied: '/home/vert_env/virt1/build' 在 /home/ayman/.pip/ 中存储失败的调试日志pip.log""

标签: python django installation virtualenv pip


【解决方案1】:

尝试 cd'ing 到 virt1 目录,然后运行“bin/pip install django”。您正在使用系统范围的 pip 而不是 virt1/bin 中的 pip。

virtualenv 在目录中初始化时会创建四个目录(bin, include, lib, local)。 “lib”是 virtualenv 保存所有 virtualenv 特定 python 包的目录。使用bin/pip安装django,你会在lib/python2.x/site-packages/找到Django它

在寻找安装在环境中的python包时,使用“bin/pip freeze”而不是“pip freeze”。

步骤:

>> mkdir virtualenv_test
>> cd virtualenv_test
>> virutalenv . --no-site-packages
>> source bin/activate
>> bin/pip install django
>> bin/pip freeze

【讨论】:

  • 如果我只是“bin/pip install Django”,它会给出一个错误,并且回溯的最后几行是“File”/home/vert_env/virt1/lib/python2.7/os .py",第 157 行,在 makedirs mkdir(name, mode) OSError: [Errno 13] Permission denied: '/home/vert_env/virt1/build' 在 /home/ayman/.pip/pip 中存储失败的调试日志。日志""
  • 您可以尝试在新目录中重复所有步骤吗?
  • 啊等等,如果我在 virtualenv 被激活时执行 'sudo bin/pip install Django',它确实将它安装在 virtualenv 中.. 有没有理由我应该尝试让它在不使用的情况下工作须藤?
  • 是的,因为您是创建该目录并初始化 virtualenv 环境的用户,因此您有权在 lib/ 目录中安装 Django。所有步骤都应该在不使用'sudo'的情况下工作
  • 在 /home/ 中创建目录确实需要管理员权限,因为它是不打算由普通用户使用的区域。您可以在 /home/ 中不使用 sudo 进行任何操作。所以我猜答案是“不”
猜你喜欢
  • 2015-07-29
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多