Nunca debería necesitar modificar la ruta directamente, ya sea a través de variables de entorno o sys.path
. Ya sea que use el sistema operativo (ej. apt-get
) O pip
virtualenv, los paquetes se instalarán en una ubicación que ya se encuentra en la ruta.
En su ejemplo, GNU Radio está instalado en la site-packages
ubicación estándar del sistema Python 2 , que ya está en la ruta. Apuntar PyCharm al intérprete correcto es suficiente; Si no es así, hay algo más que no es aparente. Puede ser que /usr/bin/python
no apunte al mismo intérprete en el que se instaló GNU Radio; Intenta apuntar específicamente al python2.7
binario. O, PyCharm solía ser algo malo para detectar paquetes; File > Invalidate Caches > Invalidate and Restart
le diría que vuelva a escanear.
Esta respuesta cubrirá cómo debe configurar un entorno de proyecto, instalar paquetes en diferentes escenarios y configurar PyCharm. Me refiero varias veces a la Guía del usuario de Python Packaging , escrita por el mismo grupo que mantiene las herramientas oficiales de Python.
La forma correcta de desarrollar una aplicación Python es con un virtualenv. Los paquetes y la versión se instalan sin afectar el sistema u otros proyectos. PyCharm tiene una interfaz incorporada para crear un virtualenv e instalar paquetes. O puede crearlo desde la línea de comando y luego apuntar PyCharm hacia él.
$ cd MyProject
$ python2 -m virtualenv env
$ . env/bin/activate
$ pip install -U pip setuptools # get the latest versions
$ pip install flask # install other packages
En su proyecto PyCharm, vaya a File > Settings > Project > Project Interpreter
. Si utilizó virtualenvwrapper
PyCharm para crear el entorno, debería aparecer en el menú. Si no, haga clic en el engranaje, elija Add Local
y ubique el binario de Python en el entorno. PyCharm mostrará todos los paquetes en el entorno seleccionado.
En algunos casos, como con GNU Radio, no hay un paquete para instalar pip
, el paquete se instaló en todo el sistema cuando instala el resto de GNU Radio (ej. apt-get install gnuradio
). En este caso, aún debe usar un virtualenv, pero deberá conocer este paquete del sistema.
$ python2 -m virtualenv --system-site-packages env
Desafortunadamente, parece un poco desordenado, porque todos los paquetes del sistema ahora aparecerán en su entorno, pero son solo enlaces, aún puede instalar o actualizar paquetes de manera segura sin afectar el sistema.
En algunos casos, tendrá múltiples paquetes locales que está desarrollando y querrá que un proyecto use el otro paquete. En este caso, puede pensar que tiene que agregar el paquete local a la ruta del otro proyecto, pero este no es el caso. Debe instalar su paquete en modo de desarrollo . Todo lo que esto requiere es agregar un setup.py
archivo a su paquete , que de todos modos será necesario para distribuirlo e implementarlo más tarde.
Mínimo setup.py
para su primer proyecto:
from setuptools import setup, find_packages
setup(
name='mypackage',
version='0.1',
packages=find_packages(),
)
Luego instálelo en el entorno de su segundo proyecto:
$ pip install -e /path/to/first/project