与virtualenv一起使用pip时如何避免"权限被拒绝"

Ars*_*nko 86 python pip virtualenv

我尝试pip在Ubuntu机器上的虚拟环境中部署Python包,但遇到与权限相关的问题.例如:

(TestVirtualEnv)test@testServer:~$ pip install markdown2
Run Code Online (Sandbox Code Playgroud)

终止于:

错误:无法创建'/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py':权限被拒绝

我不能sudo,因为它将全局安装包,而不是在虚拟环境中.我chown编辑site-packages; ls只显示相关的目录easy_install,pipsetuptools,并没有相关的降价.

如何在pip不遇到与权限相关的错误的情况下在虚拟环境中部署程序包?

seb*_*_oe 94

virtualenv当你创建了可能发生的权限问题virtualenvsudo,然后不操作sudovirtualenv.

至于你的问题的评论发现,这里的解决方案是建立virtualenvsudo能够正常工作(尤其是写),它没有sudo.

  • @sebastian_oe我想我爱你 (6认同)
  • 如果我想在/ opt中创建它需要sudo,我认为virtualenv不会在没有sudo的情况下安装. (4认同)
  • 如何在没有sudo的情况下创建`virtualenv`? (4认同)
  • 如果您确实使用 `sudo` 创建了 virtualenv,请参阅@vingtoft 的回答以了解如何轻松修复它而无需重新创建 (2认同)

Vin*_*oft 88

解:

如果您以root身份创建virtualenv,请运行以下命令:

sudo chown -R your_username:your_username path/to/virtuaelenv/
Run Code Online (Sandbox Code Playgroud)

这可能会解决您的问题.

干杯

  • 如何确定您是否以root用户身份创建了virtualenv或python? (2认同)

nea*_*mcb 6

就我而言,我使用的是mkvirtualenv,但没有告诉它我将使用 python3。我收到此错误:

mkvirtualenv hug
pip3 install hug -U

....
error: could not create '/usr/lib/python3.4/site-packages': Permission denied
Run Code Online (Sandbox Code Playgroud)

它在指定 python3 后工作:

mkvirtualenv --python=/usr/bin/python3 hug
pip3 install hug -U
Run Code Online (Sandbox Code Playgroud)


小智 6

如果您使用 root 创建了虚拟环境,则使用此命令

sudo su
Run Code Online (Sandbox Code Playgroud)

它将为您提供 root 访问权限,然后使用它激活您的虚拟环境

source /root/.env/ENV_NAME/bin/activate
Run Code Online (Sandbox Code Playgroud)

  • 这帮助我解决了从requirements.txt(django)安装依赖项时出现的权限被拒绝错误似乎必须从root激活venv。 (2认同)

Jua*_*ado 6

permission denied我在尝试激活我的虚拟环境时遇到了这个问题。我登陆此页面试图找到解决方案,因此也许这也可以帮助面临类似问题的其他人

source your_env_name_goes_here/bin/activate
Run Code Online (Sandbox Code Playgroud)

我使用了错误的命令(没有source)来激活我的环境。如果你打开了,zsh那就是正确的命令。如果没有,python 文档有一个根据您的平台和 shell(windows 或 mac、bash 或 powershell 等)使用的命令表


Ali*_*iBZ 5

我没有使用 sudo 创建我的 virtualenv。所以塞巴斯蒂安的回答不适用于我。我的项目名为utils. 我检查了utils目录,看到了这个:

-rw-r--r--   1 macuser  staff   983  6 Jan 15:17 README.md
drwxr-xr-x   6 root     staff   204  6 Jan 14:36 utils.egg-info
-rw-r--r--   1 macuser  staff    31  6 Jan 15:09 requirements.txt
Run Code Online (Sandbox Code Playgroud)

如您所见,utils.egg-info属于rootnot macuser。这就是为什么它给我permission denied错误。我也必须删除,/Users/macuser/.virtualenvs/armoury/lib/python2.7/site-packages/utils.egg-link因为它也是由创建的rootpip install -e .删除这些后我又做了一次,它奏效了。