2017-11-25 3 views
0

Ich werde eigene Django-Webanwendung erstellen, aber ich kann keine virtuelle Umgebung vorbereiten und Python-Pakete installieren. Wenn ich $ virtualenv in Terminal ausführen, erhalte ich Fehler:Kann Python-Pakete nicht mit pip installieren

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' 

Es gibt Ergebnis $ pip Befehl:

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' 

Und $ pip3 Befehl:

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 Lauf als root scheint zu arbeiten. Ich arbeite an Debian 9 Tests.

Kann mir jemand helfen?

Antwort

1

Verwenden Sie nicht root für diese. Du brauchst es wirklich nicht.

So können Sie mit Django in einem virtuellen Env arbeiten (wird dringend empfohlen).

  • Wählen Sie ein Verzeichnis, in dem Sie die Web App installieren möchten. Nennen wir es myproj: mkdir myproj && cd myproj
  • die virtuelle env erstellen: python -mvenv venv
  • Aktivieren Sie die virtuelle env: . venv/bin/activate
  • Pakete installieren: pip install django

Und du bist gut zu gehen.

Denken Sie daran, das virtuelle env jedes Mal zu aktivieren, wenn Sie mit diesem Projekt arbeiten müssen. Das heißt, jedes Mal, wenn Sie eine neue Shell öffnen, um mit diesem Projekt zu arbeiten, cd in myproj und führen Sie erneut das Aktivierungsskript mit . venv/bin/activate. Das virtuelle env bleibt in der aktuellen Shell aktiv, , so dass Sie nicht vor jeder Operation erneut ausführen müssen, Sie müssen nur einmal in jeder neuen Shell ausgeführt werden.

+0

müssen Sie nicht 'Quelle venv/bin/aktivieren' – user1767754

+1

@ user1767754'. venv/bin/activate' ist äquivalent zu 'source venv/bin/activate', aber nicht Bash-spezifisch (funktioniert auch in'/bin/sh') – janos

+0

Cool, wusste das nicht. Immer auf SO lernen. – user1767754