Also Python wahrscheinlich gut installiert. Oder vielleicht war es schon hier (ich benutze xubuntu 12.10).
Aber ich habe heute versucht, networkx mit pip zu installieren:
pip install networkx
dann sagt ich habe keine erlaubnis. Also sudo ich den obigen Befehl. Wird ohne Fehler installiert.
Jetzt kann ich networkx nicht importieren, ohne root zu sein. Ich bin mir ziemlich sicher, dass Sie nicht die ganze Zeit root sein müssen, um Python-Skripte auszuführen. Das klingt wirklich gefährlich.
easy_install sagt dies:
easy_install networkx
Fehler: Dateien im Installationsverzeichnis können nicht erstellt oder entfernt werden
Beim Versuch, Dateien im Installationsverzeichnis hinzuzufügen oder zu entfernen, ist der folgende Fehler aufgetreten:
[Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/test-easy-install-13206.pth'
Das von Ihnen angegebene Installationsverzeichnis (über --install-dir, --prefix oder die Standardeinstellung von distutils) war:
/usr/local/lib/python2.7/dist-packages/
Möglicherweise hat Ihr Konto keinen Schreibzugriff auf dieses Verzeichnis? Wenn es sich bei dem Installationsverzeichnis um ein systemeigenes Verzeichnis handelt, müssen Sie sich möglicherweise als Administrator oder "Root" -Konto anmelden. Wenn Sie keinen Administratorzugriff auf diesen Computer haben, möchten Sie möglicherweise ein anderes Installationsverzeichnis auswählen, vorzugsweise eines, das in Ihrer PYTHONPATH-Umgebungsvariablen aufgeführt ist.
Informationen zu anderen Optionen finden Sie in der Dokumentation unter:
http://packages.python.org/distribute/easy_install.html
Bitte nehmen Sie die entsprechenden Änderungen für Ihr System vor und versuchen Sie es erneut.
Ich habe auch versucht, in ~ / .networkx (einem Unterordner, den ich als Nicht-Root erstellt habe) zu installieren, und erhalte den gleichen Berechtigungsfehler. Ich chmod 777 /usr/local/lib/python2.7/dist-packages und versuche zu installieren, gleiche Berechtigungsfehler.
pip uninstall und sudo easy_install verursachen dieselben Probleme wie die pip-Installation.
was übrigens ist:
python t1.py
Traceback (letzter Aufruf zuletzt): Datei "t1.py", Zeile 3, in import networkx als nx importError: Kein Modul mit dem Namen networkx
sudo python t1.py
H: 10 ... mehr Zeug, das anzeigt, dass es importiert und gut funktioniert ...
Klar, ich war irgendwann nur ein Noob bei der Installation von Python oder ... irgendwo anders. Ich weiß nicht wo, es könnte überall sein. Hat jemand dies schon einmal erlebt oder ist er ahnungslos genug, um zu wissen, was los ist? Ich brauche deinen Halp. Prost.
EDIT: (Mehr Infos für Radoo)
sean@potatocake:~$./sh.sh
User is not part of the group which has access to that directory.
/usr/local/lib/python2.7/dist-packages needs access.
sean@potatocake:~$ll /usr/local/lib/
total 12
drwxrwxr-x 3 root root 4096 Mar 28 19:00 perl
drwxrwsr-x 4 root staff 4096 Oct 18 04:07 python2.7
drwxrwsr-x 3 root staff 4096 Oct 18 04:05 python3.2
sean@potatocake:~$ll /usr/local/lib/python2.7/
total 8
drwxrwsr-x 32 root staff 4096 Mar 28 23:13 dist-packages
drwxrwsr-x 2 root staff 4096 Oct 18 04:07 site-packages
Hinweis: Ich habe dies auf 775 zurückgesetzt, als ein Nicht-Sudo-Pip immer noch nicht funktionierte.
sean@potatocake:~$groups
sean adm cdrom sudo dip plugdev lpadmin sambashare
sean@potatocake:~$sudo useradd -G staff sean
useradd: user 'sean' already exists
type python
zurück?Antworten:
Versuchen Sie am besten nicht, die Python-Version des Systems zu überschreiben. Diese Version ist für das System da. Die Anpassung an Python des Systems kann zu Konflikten führen oder Ihr System sogar für Sicherheitslücken öffnen. Außerdem werden Systemaktualisierungen wahrscheinlich Ihre Anpassung zurücksetzen.
Verwenden Sie am besten Ihre eigene Python-Version, die mit Tools wie virtualenv oder pyenv ausgeführt werden kann .
quelle
Ich bin definitiv kein Experte in diesem Bereich, aber hier sind meine Gedanken.
Es ist gut, Ihre Installation als root zu haben, damit niemand Ihre Dateien und Konfigurationen ändern kann, außer root und sudoers. Ich denke, Ihre Installation ist in Ordnung. Wenn Sie ein neues Paket installieren möchten, sollten Sie root sein.
In Bezug auf den Berechtigungsfehler haben Sie Folgendes gesagt :
chmod 777 /usr/local/lib/python2.7/dist-packages
. Nun, dies bietet am Ende nur Zugriff auf dieses Verzeichnis. Möglicherweise verfügen Sie über einige übergeordnete Verzeichnisse, die möglicherweise keine Zugriffsberechtigungen (Ausführungsrechte) haben, was zu Ihrem Problem führen kann.Um die Berechtigungen für den aktuellen Benutzer in all diesen Verzeichnissen zu überprüfen, müssen Sie für jedes dieser Verzeichnisse Folgendes tun (ich denke, Sie können aber trotzdem eine bessere Version finden):
Ich hoffe das hilft.
quelle
Ich hatte das gleiche Problem bei der Installation von Buildozer . Ich habe folgende Befehle ausgeführt und es hat bei mir funktioniert. Versuchen:
sudo chmod 777 dist-packages
sudo chmod 777 etc
python2.7 setup.py install
Es hat bei mir funktioniert!
quelle
chmod 777
(=drwxrwxrwx
) ist eine sehr schlechte Idee, insbesondere in den oben genannten Verzeichnissen, da dies jedem Benutzer die Schreibberechtigung (lastw
indrwxrwxrwx
) für sie geben würde. Auch Gruppenschreiben (zweiterw
indrwxrwxrwx
) sollte nicht gegeben werden. Es ist besser, nur Lese- und Ausführungsberechtigungen für dist-Pakete von zu erteilenchmod o+r,o+X dist-packages
.sudo
gehen Sie direkt mitsudo -H pip install <whatever>
und kommen Sie damit fertig. Das macht keinen Sinn. Wie @Sithsu betont, ist es777
sowieso eine schlechte Idee , Berechtigungen für irgendetwas zu haben.