0

I'm going to create own Django web application but I can't prepare virtual environment and install Python packages. When I execute $ virtualenv in terminal, I'm getting error:

Traceback (most recent call last):
 File "/usr/bin/virtualenv", line 6, in <module>
 from pkg_resources import load_entry_point
 File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3161, in <module>
 @_call_aside
 File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3145, in _call_aside
 f(*args, **kwargs)
 File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 3174, in _initialize_master_working_set
 working_set = WorkingSet._build_master()
 File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 657, in _build_master
 ws = cls()
 File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 650, in __init__
 self.add_entry(entry)
 File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 706, in add_entry
 for dist in find_distributions(entry, True):
 File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2062, in find_on_path
 for dist in factory(fullpath):
 File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2124, in distributions_from_metadata
 if len(os.listdir(path)) == 0:
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/dist-packages/pytz-2017.3.dist-info'

There's result of $ pip command:

Traceback (most recent call last):
 File "/usr/bin/pip", line 9, in <module>
 from pip import main
 File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 21, in <module>
 from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
 File "/usr/lib/python2.7/dist-packages/pip/_vendor/__init__.py", line 76, in <module>
 vendored("pkg_resources")
 File "/usr/lib/python2.7/dist-packages/pip/_vendor/__init__.py", line 36, in vendored
 __import__(modulename, globals(), locals(), level=0)
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 3019, in <module>
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 3003, in _call_aside
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 3032, in _initialize_master_working_set
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 646, in _build_master
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 639, in __init__
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 695, in add_entry
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2012, in find_on_path
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pytz-2017.3.dist-info'

And $ pip3 command:

Traceback (most recent call last):
 File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 33, in vendored
 __import__(vendored_name, globals(), locals(), level=0)
ModuleNotFoundError: No module named 'pip._vendor.pkg_resources'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
 File "/usr/bin/pip3", line 9, in <module>
 from pip import main
 File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
 from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
 File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 76, in <module>
 vendored("pkg_resources")
 File "/usr/lib/python3/dist-packages/pip/_vendor/__init__.py", line 36, in vendored
 __import__(modulename, globals(), locals(), level=0)
 File "<frozen importlib._bootstrap>", line 971, in _find_and_load
 File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
 File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
 File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 3019, in <module>
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 3003, in _call_aside
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 3032, in _initialize_master_working_set
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 646, in _build_master
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 639, in __init__
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 695, in add_entry
 File "/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/__init__.py", line 2012, in find_on_path
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/dist-packages/pytz-2017.3.dist-info'

virtualenv, pip, pip3 running as root appears to be working. I'm working on Debian 9 testing.

Can anyone help me?

asked Nov 25, 2017 at 8:11
0

1 Answer 1

1

Don't use root for this. You really don't need it.

Here's how you can work with Django in a virtual env (strongly recommended).

  • Pick a directory where you want to install the web app. Let's call it myproj: mkdir myproj && cd myproj
  • Create the virtual env: python -mvenv venv
  • Activate the virtual env: . venv/bin/activate
  • Install packages: pip install django

And you're good to go.

Remember to activate the virtual env every time you need to work with this project. That is, every time you open a new shell to work with this project, cd into myproj and run again the activation script with . venv/bin/activate. The virtual env stays active in the current shell, so you don't need to rerun before every operation, you only need to run once in every new shell.

answered Nov 25, 2017 at 8:15
Sign up to request clarification or add additional context in comments.

2 Comments

don't you have to source venv/bin/activate
@user1767754 . venv/bin/activate is equivalent to source venv/bin/activate, but not Bash specific (works in /bin/sh too)

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.