【问题标题】:django not installed in virtualenv, --no-site-packages flag not correcting the issuedjango 未安装在 virtualenv 中,--no-site-packages 标志未纠正问题
【发布时间】:2013-02-21 23:20:17
【问题描述】:

我遇到的问题类似于pip / virtualenv / django installation issue,但该答案中发布的解决方案对我不起作用。

我使用 --no-site-packages 创建了一个虚拟环境:

virtualenv venv --distribute --no-site-packages

但是当我激活环境并尝试安装 django (sudo pip install django) 时,我收到消息:

teddy@coolermaster:~/heroku/battle/hellodjango$ source venv/bin/activate
(venv)teddy@coolermaster:~/heroku/battle/hellodjango$ sudo pip install Django  
Requirement already satisfied (use --upgrade to upgrade): Django in   /usr/local/lib/python2.7/dist-packages 
Cleaning up...

请注意,在上面的消息中,pip 在我的本地“dist-packages”文件夹中找到了 django 安装,而不是我的“site-packages”

如果我尝试在 python 解释器中导入 django,我会收到错误:“没有名为 django 的模块。”

我应该使用命令“pip install django”而不是“sudo pip install django”吗?当我尝试运行“pip install django”时,我看到“OSError: [Errno 13] Permission denied: '/home/teddy/heroku/battle/hellodjango/venv/build'”

问题可能与权限有关(因为我使用的是 sudo)吗?如果是这样,为什么它不允许我在没有 sudo 的情况下进行 pip 安装?或者问题可能是我的 virtualenv 忽略了站点包但仍在使用我的 dist 包中的源?

【问题讨论】:

    标签: django virtualenv


    【解决方案1】:

    使用 sudo 后清理:

    sudo rm -rf /home/teddy/heroku/battle/hellodjango/venv/build
    

    不要再使用 sudo 了。

    【讨论】:

    • 知道如果我省略了 sudo,为什么会出现权限被拒绝错误。如“pip install django”?
    • 我的猜测是,在你使用 sudo 之后,你创建了一个 root 拥有的 build 文件夹。
    • 我停用了环境,rm -rf'ed venv 文件夹,然后重新启动了终端。但是当我尝试运行 virtualenv venv --distribute 时,我得到“OSError: [Errno 13] Permission denied: 'venv'”
    • 您是否有权在任何地方创建文件?
    • 我好像没有。授予自己对这些文件夹的权限的正确方法是什么?顺便感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 2019-08-31
    • 2010-11-25
    • 2020-07-02
    相关资源
    最近更新 更多