Sie sollten den Pfad niemals direkt ändern müssen, weder über Umgebungsvariablen noch über sys.path
. Unabhängig davon, ob Sie das Betriebssystem (z. B. apt-get
) oder pip
eine virtuelle Umgebung verwenden, werden Pakete an einem Speicherort installiert, der sich bereits auf dem Pfad befindet.
In Ihrem Beispiel wird GNU Radio am Standardspeicherort des Python 2-Systems installiert site-packages
, der sich bereits im Pfad befindet. Es reicht aus, PyCharm auf den richtigen Interpreter zu richten. Wenn dies nicht der Fall ist, stimmt etwas nicht, das nicht ersichtlich ist. Es kann sein, dass /usr/bin/python
dies nicht auf denselben Interpreter verweist, in dem GNU Radio installiert wurde. Versuchen Sie, speziell auf die python2.7
Binärdatei zu zeigen. Oder PyCharm war früher etwas schlecht darin, Pakete zu erkennen. File > Invalidate Caches > Invalidate and Restart
würde sagen, es erneut zu scannen.
In dieser Antwort erfahren Sie, wie Sie eine Projektumgebung einrichten, Pakete in verschiedenen Szenarien installieren und PyCharm konfigurieren sollten. Ich verweise mehrmals auf das Python Packaging-Benutzerhandbuch , das von derselben Gruppe geschrieben wurde, die die offiziellen Python-Verpackungstools verwaltet.
Der richtige Weg, eine Python-Anwendung zu entwickeln, ist eine virtuelle Umgebung. Pakete und Versionen werden installiert, ohne das System oder andere Projekte zu beeinträchtigen. PyCharm verfügt über eine integrierte Schnittstelle zum Erstellen einer virtuellen Umgebung und zum Installieren von Paketen. Oder Sie können es über die Befehlszeile erstellen und dann PyCharm darauf richten.
$ cd MyProject
$ python2 -m virtualenv env
$ . env/bin/activate
$ pip install -U pip setuptools # get the latest versions
$ pip install flask # install other packages
Gehen Sie in Ihrem PyCharm-Projekt zu File > Settings > Project > Project Interpreter
. Wenn Sie die virtualenvwrapper
Umgebung mit oder PyCharm erstellt haben, sollte sie im Menü angezeigt werden. Wenn nicht, klicken Sie auf das Zahnrad, wählen Sie Add Local
und suchen Sie die Python-Binärdatei in der Umgebung. PyCharm zeigt alle Pakete in der ausgewählten Umgebung an.
In einigen Fällen, z. B. bei GNU Radio, muss kein Paket installiert werden pip
. Das Paket wurde systemweit installiert, wenn Sie den Rest von GNU Radio ( z. B.) installieren apt-get install gnuradio
. In diesem Fall sollten Sie weiterhin eine virtuelle Umgebung verwenden, aber Sie müssen sie auf dieses Systempaket aufmerksam machen.
$ python2 -m virtualenv --system-site-packages env
Leider sieht es etwas chaotisch aus, da alle Systempakete jetzt in Ihrer Umgebung angezeigt werden, es sich jedoch nur um Links handelt. Sie können Pakete dennoch sicher installieren oder aktualisieren, ohne das System zu beeinträchtigen.
In einigen Fällen haben Sie mehrere lokale Pakete, die Sie entwickeln, und möchten, dass ein Projekt das andere Paket verwendet. In diesem Fall könnten Sie denken, Sie müssten das lokale Paket zum Pfad des anderen Projekts hinzufügen, aber dies ist nicht der Fall. Sie sollten Ihr Paket im Entwicklungsmodus installieren . Dazu muss lediglich eine setup.py
Datei zu Ihrem Paket hinzugefügt werden, die ohnehin erforderlich ist, um das Paket später ordnungsgemäß zu verteilen und bereitzustellen.
Minimal setup.py
für Ihr erstes Projekt:
from setuptools import setup, find_packages
setup(
name='mypackage',
version='0.1',
packages=find_packages(),
)
Installieren Sie es dann in der Umgebung Ihres zweiten Projekts:
$ pip install -e /path/to/first/project