我正在尝试将 django 安装到已存在的虚拟环境中。
按照 pip-install 网站上列出的说明进行操作这里,我从 SSH 运行了以下命令。
name@server:~$ . myenv.env/bin/activate
(myenv.env)nam@server:~$ pip install django
但是在安装的底部,我看到了以下内容:
creating /usr/local/lib/python2.7/dist-packages/django
error: could not create '/usr/local/lib/python2.7/dist-packages/django': Permission denied
看起来它正在尝试将其安装到全局目录中。我没有 sudo 权限。我在这里做错了什么吗?
更新:$PATH = /var/django/myenv.env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
答案1
抱歉,回答晚了一年!我遇到了同样的问题并解决了,我不知道您是否在创建虚拟环境后更改了目录的名称,但我确实更改了。如果是这样,那么这就是我所做的。
1.)deactivate
您的 v-env。修复后您需要重新启动 v-env,所以现在最好重新启动deactivate
。对吗?
2.) 现在,由于我们在不同的路径中创建了 v-env,我们必须更改这些文件中的静态路径变量。
为了使 pip 工作, 你不需要这样做,但我还是这么做了。
bin/activate
,,
bin/activate.csh
bin/activate.fish
bin/pip
,,
bin/pip2
bin/pip2.7
bin/easy_install
,
bin/easy_install2.7
3.) 为了使 pip 工作,您必须更正 pip 文件中的 python 解释器,这也具有由 virtualenv 在创建过程中设置的静态解释器位置。
4.) 要让 easy_install 工作吗?你猜对了,修复解释器的位置。
我希望这对以后读到这篇文章的人有所帮助。抱歉楼主,我来晚了。
答案2
我也遇到了同样的问题。
我删除了虚拟环境并创建了一个新的虚拟环境,解决了该问题。
可能不是您所希望的答案,但因为它是唯一的答案......
答案3
如果没有管理权限,您能做的事情就会非常有限。如果您无法提升自己的权限或请求权限,我发现最好的方法是创建另一个环境,创建一个 requirements.txt 文件,将您需要的所有软件包下载到您的机器(django),这些软件包也位于您的需求文件中,这样它应该可以正常工作。
答案4
遇到了同样的问题。在我的情况下,原因是创建的虚拟环境是针对 python2.7(默认),但我使用 pip3 安装包。pip3 不存在于我的虚拟环境中,因此它默认为全局环境。对我来说,解决方法是使用
virtualenv flask --python=python3
创建环境。