Dans PyCharm, j'ai ajouté le Python environnement /usr/bin/python
. cependant,
from gnuradio import gr
échoue en tant que référence non définie. Cependant, cela fonctionne très bien dans l'interpréteur Python à partir de la ligne de commande.
GNURadio fonctionne bien avec python en dehors de Pycharm. Tout est installé et configuré comme je le veux.
Gnuradio est situé à /usr/local/lib/python2.7/site-packages/gnuradio
Aussi:
PYTHONPATH =/usr/local/lib/python2.7/site-packages: /usr/local/lib/python2.7/site-packages/gnuradio
Allez dans Fichier → Paramètres → Paramètres du projet → Interprète de projet.
Ensuite, appuyez sur Configurer interprète et accédez à l'onglet "Chemins".
Appuyez sur le bouton + dans la zone Chemins. Vous pouvez indiquer le chemin du module que vous souhaitez reconnaître.
Ouvrez l’interprète python où vous pouvez importer le module.
>> import gnuradio
>> gnuradio.__file__
"path/to/gnuradio"
Le plus souvent, vous aurez une structure de dossier comme celle-ci:
foobarbaz/
gnuradio/
__init__.py
other_file.py
Vous voulez ajouter foobarbaz au chemin ici.
Vous ne devriez jamais avoir besoin de modifier le chemin directement, que ce soit à l'aide de variables d'environnement ou de sys.path
. Que vous utilisiez l'os (ex. apt-get
) ou pip
dans un fichier virtualenv, les packages seront installés à un emplacement déjà situé sur le chemin.
Dans votre exemple, la radio GNU est installée sur l'emplacement site-packages
standard du système Python 2, qui se trouve déjà dans le chemin. Il suffit de pointer PyCharm sur le bon interprète; si ce n'est pas le cas, il y a autre chose qui ne va pas et qui n'est pas apparent. Il se peut que /usr/bin/python
ne pointe pas vers le même interpréteur que celui où GNU Radio a été installée; essayez de pointer spécifiquement sur le binaire python2.7
. PyCharm avait l'habitude d'être un peu mauvais pour détecter les paquets; File > Invalidate Caches > Invalidate and Restart
lui dirait de procéder à une nouvelle analyse.
Cette réponse expliquera comment 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 empaquetage Python , écrit par le même groupe que celui qui gère les outils de conditionnement officiels Python.
La manière correcte de développer une application Python consiste à utiliser virtualenv. Les packages et la version sont installés sans affecter le système ni les autres projets. PyCharm a une interface intégrée pour créer virtualenv et installer des paquetages. Ou vous pouvez le créer à partir de la ligne de commande, puis y pointer PyCharm.
$ 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, cela devrait apparaître dans le menu. Sinon, cliquez sur l'engrenage, choisissez Add Local
et localisez le binaire Python dans env. PyCharm affichera tous les packages de l’env sélectionné.
Dans certains cas, comme avec GNU Radio, aucun paquet ne doit être installé avec pip
, le paquet a été installé à l’échelle du système lorsque vous avez installé le reste de GNU Radio (ex. apt-get install gnuradio
). Dans ce cas, vous devez toujours utiliser virtualenv, mais vous devez le mettre au courant de ce package système.
$ python2 -m virtualenv --system-site-packages env
Malheureusement, cela semble un peu brouillon, car tous les paquets système vont maintenant apparaître dans votre env, mais ce ne sont que des liens, vous pouvez toujours installer ou mettre à jour des paquets en toute sécurité sans affecter le système.
Dans certains cas, vous développerez plusieurs packages locaux et voudrez qu'un projet utilise l'autre package. Dans ce cas, vous pourriez penser que vous devez ajouter le package local au chemin d'accès de l'autre projet, mais ce n'est pas le cas. Vous devriez installer votre paquet en mode de développement . Tout ce dont vous avez besoin est en ajoutant un fichier setup.py
à votre paquet , qui sera de toute façon nécessaire pour distribuer et déployer correctement le paquet ultérieurement.
Minimal setup.py
pour votre premier projet:
from setuptools import setup, find_packages
setup(
name='mypackage',
version='0.1',
packages=find_packages(),
)
Puis installez-le dans le deuxième env de votre projet:
$ pip install -e /path/to/first/project
Pour moi, il suffisait de marquer le répertoire en tant que racine source.
Ma version est PyCharm Professional Edition 3.4, et la partie Ajout d’un chemin est différente.
Vous pouvez aller dans "Préférences" -> "Interprète de projet". Choisissez le bouton d'outil dans le coin supérieur droit.
Choisissez ensuite "Plus ..." -> "Afficher le chemin pour l’interprète sélectionné" -> "Ajouter". Ensuite, vous pouvez ajouter un chemin.
Pour PyCharm Community Edition 2016.3.2, il s'agit de:
"Interprète de projet" -> Icône de paramètres en haut à droite -> "Plus".
Ensuite, sur le côté droit, il devrait y avoir une icône de paquets. Lorsque vous la survolez, il devrait afficher "Afficher les chemins pour l'interprète sélectionné". Cliquez dessus.
Cliquez ensuite sur le bouton "Ajouter" ou appuyez sur "alt + insérer" pour ajouter un nouveau chemin.
Sur l'Explorateur de projet, vous pouvez cliquer avec le bouton droit de la souris sur le dossier contenant le module et le définir comme "Source".
Il sera analysé dans l'index pour la complétion du code ainsi que pour d'autres éléments.
NE changez PAS le chemin de l'interprète!
Changez plutôt la structure du projet:
Fichier -> Paramètres -> Projet -> Structure du projet -> Ajouter une racine de contenu
Je suis nouveau dans PyCharm (avec 2018.3.4 CE) et Python, j'ai donc essayé à distance de suivre chacune des suggestions ci-dessus pour accéder au package PIL (Pillow) dont je savais qu'il se trouvait dans les packages système-site. . Aucun n'a travaillé. J'étais sur le point d'abandonner pour la nuit quand j'ai remarqué le fichier venv/pyvenv.cfg sous mon projet dans la fenêtre Explorateur de projets. J'ai trouvé la ligne "include-system-site-packages = false" dans ce fichier et je l'ai donc changée en "true". Problème résolu.
Comme solution rapide et sale, cela a fonctionné pour moi: Ajouter ces 2 lignes avant l’importation problématique:
import sys
sys.path.append('C:\\Python27\\Lib\site-packages')
Télécharger anaconda https://anaconda.org/
une fois l'installation d'Anaconda terminée ...
Allez dans Paramètres -> Paramètres du projet -> Interprète de projet.
Ensuite, accédez à l'onglet "Chemins" et recherchez/anaconda/bin/python
cliquez sur appliquer