0

Ich habe ein Programm, das ich vom Terminal (keine virtuelle Umgebung) ausführen kann, wo ich Pakete mit der Option --user installiere. Jetzt möchte ich das Programm in Python 2.7 mit requirements.txt, setup.py, etc. richtig organisieren. Dafür habe ich eine virtuelle Umgebung erstellt und ich installiere alle notwendigen Pakete, damit ich ein " pip einfrieren> Anforderungen.txt ".Probleme beim Installieren von Pillow/PIL in einer virtuellen Umgebung ohne Sudo

Leider kann ich PIL/Pillow nicht installieren. Ich habe ein Problem mit JPEG bekommen, aber ich habe das mit "sudo apt-get install libjpeg-dev" behoben. Jetzt mit diesen:

pip install Pillow 
pip install Pillow --allow-external Pillow --allow-unverified Pillow 

erhalte ich eine Erlaubnis verweigert:

... 
error: could not create '/home/kinkyboy/virtualenv/tantrix/lib/python2.7/site-packages/PIL': Permission denied 

---------------------------------------- 
Cleaning up... 
Command /home/kinkyboy/virtualenv/tantrix/bin/python -c "import setuptools, tokenize;__file__='/home/kinkyboy/virtualenv/tantrix/build/Pillow/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-S9cPV3-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/kinkyboy/virtualenv/tantrix/include/site/python2.7 failed with error code 1 in /home/kinkyboy/virtualenv/tantrix/build/Pillow 
Storing debug log for failure in /home/kinkyboy/.pip/pip.log 

Wenn ich sudo es funktioniert und mit --user es nicht der Fall ist, aber offensichtlich diese Befehle nicht installieren in der virtuellen Umgebung. Fehle ich etwas?

+0

Welche Benutzer die virtuelle Umgebung aufgebaut? Sieht für mich aus, dass die virtuelle Umgebung möglicherweise vom Benutzer root erstellt wurde. –

+0

Wenn Sie * sudo * unangemessen verwenden, können Sie die Berechtigungen durcheinanderbringen, so dass Sie sie nicht einfach beheben können. 'sudo apt-get' ist nur der * einzige * sichere Gebrauch. – o11c

+0

Ich lese über chown'ing die ~/.cache/pip-Datei, aber es ist bereits im Besitz von meinem Benutzer (kinkyboy), aber die virtuelle Umgebung gehört Root. lass mich versuchen, die virtuelle Umgebung zu chown – aless80

Antwort

0

Die Lösung bestand darin, den Weg in die virtuelle Umgebung zu finden. Stellen Sie sicher, dass sowohl ~/.cache/pip als auch der Pfad zur virtuellen Umgebung dem Benutzer gehört. In meinem Fall war das zweite nicht

sudo chown -R your_username: your_username path/to/virtuaelenv/

See @Vingtoft hier: StackOverflow 19471972

+0

'sudo chown -R Kinkyboy/home/kinkyboy' – phd

Verwandte Themen