Vous ne devriez jamais avoir besoin de modifier le chemin directement, que ce soit via des variables d'environnement ou sys.path
. Que vous utilisiez le système d'exploitation (ex. apt-get
) Ou pip
dans un virtualenv, les packages seront installés à un emplacement déjà sur le chemin.
Dans votre exemple, GNU Radio est installé à l' site-packages
emplacement standard du système Python 2 , qui se trouve déjà dans le chemin. Il suffit de pointer PyCharm vers le bon interprète; si ce n'est pas le cas, il y a autre chose qui ne va pas. Il se peut que /usr/bin/python
cela ne pointe pas vers le même interpréteur dans lequel GNU Radio a été installé; essayez de pointer spécifiquement sur le python2.7
binaire. Ou, PyCharm était un peu mauvais pour détecter les paquets; File > Invalidate Caches > Invalidate and Restart
lui dirait de réanalyser.
Cette réponse couvrira comment vous devez configurer un environnement de projet, installer des packages dans différents scénarios et configurer PyCharm. Je me réfère plusieurs fois au Guide de l'utilisateur de l'empaquetage Python , écrit par le même groupe qui maintient les outils d'empaquetage Python officiels.
La bonne façon de développer une application Python est d'utiliser un virtualenv. Les packages et la version sont installés sans affecter le système ou d'autres projets. PyCharm a une interface intégrée pour créer un virtualenv et installer des packages. Ou vous pouvez le créer à partir de la ligne de commande, puis pointer PyCharm vers lui.
$ cd MyProject
$ python2 -m virtualenv env
$ . env/bin/activate
$ pip install -U pip setuptools # get the latest versions
$ pip install flask # install other packages
Dans votre projet PyCharm, accédez à File > Settings > Project > Project Interpreter
. Si vous avez utilisé virtualenvwrapper
ou PyCharm pour créer l'env, alors il devrait apparaître dans le menu. Sinon, cliquez sur l'engrenage, choisissez Add Local
et localisez le binaire Python dans l'env. PyCharm affichera tous les packages dans l'environnement sélectionné.
Dans certains cas, comme avec GNU Radio, il n'y a pas de package à installer pip
, le package a été installé à l'échelle du système lorsque vous installez le reste de GNU Radio (ex. apt-get install gnuradio
). Dans ce cas, vous devez toujours utiliser un virtualenv, mais vous devrez lui faire connaître ce package système.
$ python2 -m virtualenv --system-site-packages env
Malheureusement, cela semble un peu désordonné, car tous les packages système apparaîtront maintenant dans votre env, mais ce ne sont que des liens, vous pouvez toujours installer ou mettre à niveau des packages en toute sécurité sans affecter le système.
Dans certains cas, vous aurez plusieurs packages locaux que vous développez et voudrez qu'un projet utilise l'autre package. Dans ce cas, vous pourriez penser que vous devez ajouter le package local au chemin de l'autre projet, mais ce n'est pas le cas. Vous devez installer votre package en mode développement . Tout cela nécessite d' ajouter un setup.py
fichier à votre package , qui sera de toute façon requis pour distribuer et déployer correctement le package ultérieurement.
Minimal setup.py
pour votre premier projet:
from setuptools import setup, find_packages
setup(
name='mypackage',
version='0.1',
packages=find_packages(),
)
Installez-le ensuite dans l'env de votre second projet:
$ pip install -e /path/to/first/project