Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.5/site-packages'" installing Django

I cannot install basic Django packages on Ubuntu. I just deleted virtualenv and remade it. pip3install = pip3 install -r requirements.txt

[mything] cchilders@cchilders-desktop:~/projects/mything (master) 
$ cat requirements.txt 
Django==1.10.1
django-filter
djangorestframework
psycopg2
twilio
ipdb
ipython


[mything] cchilders@cchilders-desktop:~/projects/mything (master) 
$ pip3install 
Collecting Django==1.10.1 (from -r requirements.txt (line 1))
  Using cached Django-1.10.1-py2.py3-none-any.whl
Collecting django-filter (from -r requirements.txt (line 2))
  Using cached django_filter-0.15.2-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): djangorestframework in /home/cchilders/.local/lib/python3.5/site-packages (from -r requirements.txt (line 3))
Requirement already satisfied (use --upgrade to upgrade): psycopg2 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 4))
Collecting twilio (from -r requirements.txt (line 5))
Requirement already satisfied (use --upgrade to upgrade): ipdb in /home/cchilders/.local/lib/python3.5/site-packages (from -r requirements.txt (line 6))
Requirement already satisfied (use --upgrade to upgrade): ipython in /home/cchilders/.local/lib/python3.5/site-packages (from -r requirements.txt (line 7))
Collecting pysocks; python_version == "3.5" (from twilio->-r requirements.txt (line 5))
Requirement already satisfied (use --upgrade to upgrade): six in /home/cchilders/.local/lib/python3.5/site-packages (from twilio->-r requirements.txt (line 5))
Collecting httplib2>=0.7 (from twilio->-r requirements.txt (line 5))
Requirement already satisfied (use --upgrade to upgrade): pytz in /usr/lib/python3/dist-packages (from twilio->-r requirements.txt (line 5))
Requirement already satisfied (use --upgrade to upgrade): setuptools in /home/cchilders/.local/lib/python3.5/site-packages (from ipdb->-r requirements.txt (line 6))
Requirement already satisfied (use --upgrade to upgrade): prompt-toolkit<2.0.0,>=1.0.3 in /home/cchilders/.local/lib/python3.5/site-packages (from ipython->-r requirements.txt (line 7))
Requirement already satisfied (use --upgrade to upgrade): pickleshare in /home/cchilders/.local/lib/python3.5/site-packages (from ipython->-r requirements.txt (line 7))
Requirement already satisfied (use --upgrade to upgrade): decorator in /home/cchilders/.local/lib/python3.5/site-packages (from ipython->-r requirements.txt (line 7))
Requirement already satisfied (use --upgrade to upgrade): simplegeneric>0.8 in /home/cchilders/.local/lib/python3.5/site-packages (from ipython->-r requirements.txt (line 7))
Requirement already satisfied (use --upgrade to upgrade): traitlets>=4.2 in /home/cchilders/.local/lib/python3.5/site-packages (from ipython->-r requirements.txt (line 7))
Requirement already satisfied (use --upgrade to upgrade): pygments in /home/cchilders/.local/lib/python3.5/site-packages (from ipython->-r requirements.txt (line 7))
Requirement already satisfied (use --upgrade to upgrade): pexpect; sys_platform != "win32" in /home/cchilders/.local/lib/python3.5/site-packages (from ipython->-r requirements.txt (line 7))
Requirement already satisfied (use --upgrade to upgrade): wcwidth in /home/cchilders/.local/lib/python3.5/site-packages (from prompt-toolkit<2.0.0,>=1.0.3->ipython->-r requirements.txt (line 7))
Requirement already satisfied (use --upgrade to upgrade): ipython-genutils in /home/cchilders/.local/lib/python3.5/site-packages (from traitlets>=4.2->ipython->-r requirements.txt (line 7))
Requirement already satisfied (use --upgrade to upgrade): ptyprocess>=0.5 in /home/cchilders/.local/lib/python3.5/site-packages (from pexpect; sys_platform != "win32"->ipython->-r requirements.txt (line 7))
Installing collected packages: Django, django-filter, pysocks, httplib2, twilio
Exception:
Traceback (most recent call last):
  File "/home/cchilders/.local/lib/python3.5/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/home/cchilders/.local/lib/python3.5/site-packages/pip/commands/install.py", line 317, in run
    prefix=options.prefix_path,
  File "/home/cchilders/.local/lib/python3.5/site-packages/pip/req/req_set.py", line 742, in install
    **kwargs
  File "/home/cchilders/.local/lib/python3.5/site-packages/pip/req/req_install.py", line 831, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "/home/cchilders/.local/lib/python3.5/site-packages/pip/req/req_install.py", line 1032, in move_wheel_files
    isolated=self.isolated,
  File "/home/cchilders/.local/lib/python3.5/site-packages/pip/wheel.py", line 346, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/home/cchilders/.local/lib/python3.5/site-packages/pip/wheel.py", line 287, in clobber
    ensure_dir(dest)  # common for the 'include' path
  File "/home/cchilders/.local/lib/python3.5/site-packages/pip/utils/__init__.py", line 83, in ensure_dir
    os.makedirs(path)
  File "/usr/lib/python3.5/os.py", line 241, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/usr/lib/python3.5/site-packages'

The mything at the left is an active virtualenv (I just remade)

like image 467
codyc4321 Avatar asked Oct 10 '16 01:10

codyc4321


2 Answers

You could accidentally recreate virtualenv with Python2 by forgetting to put path to Python3 interpreter so when you execute pip3 it refers to system Python3.

Make sure that you use correct Python in your virtualenv and also make sure that you create virtualenv with pip (yes it's the default option but we don't know how you create your virtual environment).

like image 158
valignatev Avatar answered Nov 15 '22 03:11

valignatev


Just to expand on the answer by @valentjedi, here's how I got my permission issue fixed without using sudo.

Install

  • Make sure you have virtualenv installed here

  • This is optional, but I also use virtualenvwrapper to use the workon command here, otherwise you can just source bin/activate from the virtualenv

Create Virtualenv

You do not want to install your project libraries with sudo because it will install your libraries system wide (which will run into issues when you have more than one project). Instead use virtualenvs like this:

$mkvirtualenv myenv --python=python3.5
$workon myenv
$pip3 install -r requirements.txt

This gets you setup by making your virtualenv 'myenv' and specifying which python you are using. You then activate the environment and are able to install your requirements file.

like image 11
Will Avatar answered Nov 15 '22 03:11

Will