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 pip
in un virtualenv, i pacchetti verranno installati in una posizione già sul percorso.
Nel tuo esempio, GNU Radio è installato nella site-packages
posizione 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/python
non punti allo stesso interprete in cui è stata installata la GNU Radio; prova a indicare specificamente il python2.7
binario. Oppure, PyCharm era un po 'brutto nel rilevare i pacchi; File > Invalidate Caches > Invalidate and Restart
direi 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 virtualenvwrapper
o PyCharm per creare l'ENV, dovrebbe apparire nel menu. In caso contrario, fai clic sull'ingranaggio, scegli Add Local
e 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.py
file al pacchetto , che sarà comunque richiesto per distribuire e distribuire correttamente il pacchetto in un secondo momento.
Minimo setup.py
per 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