'Permission denied' error when using pip install in virtualenv

aweeeezy picture aweeeezy · Jun 5, 2015 · Viewed 27.6k times · Source

Edit: FIXED!

Just had to chown the .cache directory

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. I've looked at other SO posts like this one, but the sudo issue isn't the same as my own. 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).

I've also tried doing 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)

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?

Answer

Vladir Parrado Cruz picture Vladir Parrado Cruz · Jun 23, 2016

I think that if you do that pip install numpy --no-cache-dir it will work.

If you run pip --help you will find:

--no-cache-dir Disable the cache.

Hope that it can help to someone in the future.