在virtualen中使用pip时如何避免“权限被拒绝”

2024-06-26 00:22:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Ubuntu机器上的虚拟环境中部署一个带有pip的Python包,但是遇到了与权限相关的问题。例如:

(TestVirtualEnv)test@testServer:~$ pip install markdown2

终止于:

error: could not create '/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py': Permission denied

我不能sudo,因为它将全局安装包,而不是在虚拟环境中。Ichownedsite-packagesls只显示与easy_installpipsetuptools相关的目录,而不显示与标记相关的任何内容。

如何在具有pip的虚拟环境中部署包而不遇到与权限相关的错误?


Tags: installpiptest机器权限ubuntupackages部署
3条回答

当您将virtualenv创建为sudo,然后在virtualenv中不使用sudo操作时,可能会出现virtualenv权限问题。

正如您在问题注释中发现的,这里的解决方案是创建virtualenv,而不需要sudo,以便能够在不需要sudo的情况下在其中工作(特别是编写)。

解决方案:

如果将virtualenv创建为根目录,请运行以下命令:

sudo chown -R your_username:your_username path/to/virtuaelenv/

这可能会解决你的问题。

干杯

在我的例子中,我使用的是mkvirtualenv,但没有告诉它我将使用python3。我得到这个错误:

mkvirtualenv hug
pip3 install hug -U

....
error: could not create '/usr/lib/python3.4/site-packages': Permission denied

它在指定python3之后工作:

mkvirtualenv --python=/usr/bin/python3 hug
pip3 install hug -U

相关问题 更多 >