简体   繁体   English

在virtualenv中使用pip install时出现“权限被拒绝”错误

[英]'Permission denied' error when using pip install in virtualenv

Edit: FIXED! 编辑:固定!

Just had to chown the .cache directory 只需要输入.cache目录

I've tried the virtualenvwrapper docs instructions, I've tried this guy's instructions as well as these ...I've tried sudo pip uninstall virtualenv , sudo pip uninstall virtualenvwrapper , sudo pip3 uninstall virtualenv , sudo pip3 uninstall virtualenvwrapper before attempting each set of instructions. 我已经尝试了virtualenvwrapper文档说明,我已经尝试过这个家伙的说明以及这些 ...我已经尝试了sudo pip uninstall virtualenvsudo pip uninstall virtualenvwrappersudo pip3 uninstall virtualenvsudo pip3 uninstall virtualenvwrapper在尝试每套之前指示。 I've looked at other SO posts like this one , but the sudo issue isn't the same as my own. 我看过像这样的其他SO帖子,但是sudo问题与我自己的不一样。 By this, I mean that I don't use sudo when making the virtualenv, and if I try to use sudo to pip install a package, it'll just say that I've already installed the package (outside of the virtualenv). 通过这个,我的意思是我在制作virtualenv时不使用sudo,如果我尝试使用sudo pip安装包,它只会说我已经安装了包(在virtualenv之外)。

I've also tried doing pip install --user virtualenv(wrapper) 我也尝试过pip install --user virtualenv(wrapper)

Here's what I did: 这是我做的:

~ $ sudo pip3 install virtualenv
Downloading/unpacking virtualenv
  Downloading virtualenv-13.0.3-py2.py3-none-any.whl (1.7MB): 1.7MB downloaded
Installing collected packages: virtualenv
Successfully installed virtualenv
Cleaning up...
~ $ mkdir ~/.virtualenvs
~ $ sudo pip3 install virtualenvwrapper
Downloading/unpacking virtualenvwrapper
  Downloading virtualenvwrapper-4.5.1-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): virtualenv-clone in /usr/local/lib/python3.4/dist-packages (from virtualenvwrapper)
Requirement already satisfied (use --upgrade to upgrade): stevedore in /usr/local/lib/python3.4/dist-packages (from virtualenvwrapper)
Requirement already satisfied (use --upgrade to upgrade): virtualenv in /usr/local/lib/python3.4/dist-packages (from virtualenvwrapper)
Installing collected packages: virtualenvwrapper
Successfully installed virtualenvwrapper
Cleaning up...
~ $ export WORKON_HOME=~/.virtualenvs/

Then I added these two lines to my .bashrc: (I also tried setting VIRTUALENVWRAPPER_PYTHON to /usr/bin/python ) 然后我将这两行添加到我的.bashrc中:(我也尝试将VIRTUALENVWRAPPER_PYTHON设置为/usr/bin/python

source /usr/local/bin/virtualenvwrapper.sh
VIRTUALENVWRAPPER_PYTHON='/usr/bin/python3'

Next I tried this: 接下来我尝试了这个:

~ $ mkvirtualenv test
New python executable in test/bin/python
Installing setuptools, pip, wheel...done.
(test)~ $ pip install numpy
Collecting numpy
  Using cached numpy-1.9.2.tar.gz
Building wheels for collected packages: numpy
Exception:
Traceback (most recent call last):
  File "/home/aweeeezy/.virtualenvs/test/local/lib/python2.7/site-packages/pip/basecommand.py", line 223, in main
    status = self.run(options, args)
  File "/home/aweeeezy/.virtualenvs/test/local/lib/python2.7/site-packages/pip/commands/install.py", line 291, in run
    wb.build(autobuilding=True)
  File "/home/aweeeezy/.virtualenvs/test/local/lib/python2.7/site-packages/pip/wheel.py", line 754, in build
    ensure_dir(output_dir)
  File "/home/aweeeezy/.virtualenvs/test/local/lib/python2.7/site-packages/pip/utils/__init__.py", line 70, in ensure_dir
    os.makedirs(path)
  File "/home/aweeeezy/.virtualenvs/test/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/home/aweeeezy/.virtualenvs/test/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/home/aweeeezy/.virtualenvs/test/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/home/aweeeezy/.virtualenvs/test/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/home/aweeeezy/.cache/pip/wheels/4b'

Why can't virtualenv just work? 为什么virtualenv不能正常工作?

I think that if you do that pip install numpy --no-cache-dir it will work. 我认为如果你这样做pip install numpy --no-cache-dir它会起作用。

If you run pip --help you will find: 如果你运行pip --help你会发现:

--no-cache-dir Disable the cache.

Hope that it can help to someone in the future. 希望它能在将来帮助某人。

you need to change the owner of directory of pip. 你需要更改pip目录的所有者。

run chown -R <user>:<group> /home/aweeeezy/.cache/pip . run chown -R <user>:<group> /home/aweeeezy/.cache/pip

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM