Non dovresti mai aver bisogno di modificare il percorso direttamente, attraverso variabili di ambiente o sys.path. Sia che si usi il sistema operativo (es. apt-get), O pipin un virtualenv, i pacchetti verranno installati in una posizione già sul percorso.
Nel tuo esempio, GNU Radio è installato nella site-packagesposizione standard del sistema Python 2 , che è già nel percorso. È sufficiente indicare PyCharm all'interprete corretto; se non lo è, c'è qualcos'altro che non è evidente. Può darsi che /usr/bin/pythonnon punti allo stesso interprete in cui è stata installata la GNU Radio; prova a indicare specificamente il python2.7binario. Oppure, PyCharm era un po 'brutto nel rilevare i pacchi; File > Invalidate Caches > Invalidate and Restartdirei di ripetere la scansione.
Questa risposta descriverà come impostare un ambiente di progetto, installare pacchetti in diversi scenari e configurare PyCharm. Mi riferisco più volte alla Guida per l' utente di Python Packaging , scritta dallo stesso gruppo che mantiene gli strumenti di packaging Python ufficiali.
Il modo corretto di sviluppare un'applicazione Python è con virtualenv. I pacchetti e la versione vengono installati senza influire sul sistema o su altri progetti. PyCharm ha un'interfaccia integrata per creare un virtual virtual e installare pacchetti. Oppure puoi crearlo dalla riga di comando e quindi puntare PyCharm su di esso.
$ cd MyProject
$ python2 -m virtualenv env
$ . env/bin/activate
$ pip install -U pip setuptools # get the latest versions
$ pip install flask # install other packages
Nel tuo progetto PyCharm, vai a File > Settings > Project > Project Interpreter. Se hai usato virtualenvwrappero PyCharm per creare l'ENV, dovrebbe apparire nel menu. In caso contrario, fai clic sull'ingranaggio, scegli Add Locale individua il binario Python nell'ambiente. PyCharm mostrerà tutti i pacchetti nell'ambiente selezionato.

In alcuni casi, come con GNU Radio, non esiste un pacchetto con cui installare pip, il pacchetto è stato installato a livello di sistema quando si installa il resto di GNU Radio (es. apt-get install gnuradio). In questo caso, dovresti comunque usare un virtualenv, ma dovrai renderlo consapevole di questo pacchetto di sistema.
$ python2 -m virtualenv --system-site-packages env
Sfortunatamente sembra un po 'disordinato, perché ora tutti i pacchetti di sistema appariranno nel tuo env, ma sono solo collegamenti, puoi comunque installare o aggiornare in sicurezza i pacchetti senza influenzare il sistema.
In alcuni casi, avrai più pacchetti locali che stai sviluppando e vorrai che un progetto utilizzi l'altro pacchetto. In questo caso potresti pensare di dover aggiungere il pacchetto locale al percorso dell'altro progetto, ma non è così. È necessario installare il pacchetto in modalità di sviluppo . Tutto ciò che richiede è l' aggiunta di un setup.pyfile al pacchetto , che sarà comunque richiesto per distribuire e distribuire correttamente il pacchetto in un secondo momento.
Minimo setup.pyper il tuo primo progetto:
from setuptools import setup, find_packages
setup(
name='mypackage',
version='0.1',
packages=find_packages(),
)
Quindi installalo nell'ambiente del tuo secondo progetto:
$ pip install -e /path/to/first/project