Comment configurer correctement le $PYTHONPATH
variable pour mon espace de travail dans VisualStudio Code?
Informations générales
J'ai installé deux versions de GNURadio:
GNURadio version 3.7.11 installée par le gestionnaire de paquets Linux Mint dans /usr/lib/python2.7/dist-packages/gnuradio
GNURadio version 3.7.13.4 installée par PyBOMBS dans /home/tejul/Documents/gr13/default/lib/python2.7/dist-packages/gnuradio
_ (mon répertoire de préfixe est ~/Documents/gr13/default
)
Je ne peux utiliser la version plus récente de GNURadio qu'après avoir exécuté le setup_env.sh
script (qui ajoute, entre autres, /home/tejul/Documents/gr13/default/lib/python2.7/dist-packages
à $PYTHONPATH
) puis lancez python dans le terminal
tejul@Wacom:~/Documents/gr13/default$ ls
bin etc include lib libexec setup_env.sh share src
tejul@Wacom:~/Documents/gr13/default$ source ./setup_env.sh
tejul@Wacom:~/Documents/gr13/default$ python
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from gnuradio import gr
>>> gr.version()
'3.7.13.4'
>>>
Sans modifier le $ PYTHONPATH python - naturellement - importe l'ancienne version de GNURadio.
Je veux écrire, exécuter et déboguer python les scripts de la nouvelle version de GNURadio dans VisualStudio Code. J'ai essayé de comprendre la sélection de interpréteurs python , espaces de travail , et environnements pour VSCode.
Autant que je sache, le paramètre d'espace de travail VSCode python.pythonPath
ne doit pas être confondu avec la variable d’environnement $PYTHONPATH
. python.pythonPath
est le chemin de l’interprète python utilisé pour le débogage ou l’exécution du code, tandis que $PYTHONPATH
est la variable d’environnement que python utilise pour rechercher des modules.
Il semble que PyBOMBS n’a pas installé son propre interpréteur python dans mon répertoire de préfixe. Je dois donc utiliser VSCode avec mon interprète normal python situé à /usr/bin/python2.7
. Donc, redéfinir le python.pythonPath
ou en sélectionnant un autre python interprète ne m'aiderait pas.
Je dois laisser VSCode utiliser ma propre version de la variable d'environnement $PYTHONPATH
qui dirait à mon interprète habituel python d'importer des modules de préférence de /home/tejul/Documents/gr13/default/lib/python2.7/dist-packages
.
Problème
Suite à la documentation , j'ai créé mon propre .env
fichier dans le répertoire de l’espace de travail qui définit l’ordre de préférence des emplacements à partir desquels python doit importer les modules. Hélas, cela n’a aucun effet sur le python interprète.
Pouvez-vous voir quelque chose que je fais mal ici? J'ai aussi essayé:
/home/tejul/Documents/gr13/default/lib/python2.7
, cela n'a pas aidé$PYTHONPATH
au lieu de PYTHONPATH
, cela n'a pas aidé.env
fichier, cela n'a pas aidéPYTHONPATH="/home/tejul/Documents/gr13/default/lib/python2.7:/usr/lib/python2.7"
, cela n'a pas aidéOP semble avoir posé des questions sur la syntaxe de chemin d'accès du fichier .env et du code vscode, de sorte qu'il trouve et lit certains fichiers de module personnalisés. Mon problème était similaire en ce sens que je voulais que le code trouve mes modules personnalisés à importer dans un script. Je ne voulais pas placer mes modules personnalisés dans un dossier de mon environnement python. Je souhaitais également éviter de définir un ou plusieurs chemins en tant que PYTHONPATH pour les variables utilisateur dans l'environnement Windows. fonctionnera si vous voulez le faire. Je travaille dans vscode dans Windows 10.
1) SYNTAXE:
a) J'ai trouvé que la syntaxe de chemin suivante fonctionne dans le fichier env:
PYTHONPATH = C:/0APPS/PYTHON/_MODULES
Mes fichiers de module .py sont dans ce dossier.
b) # fonctionne pour les commentaires dans le fichier .env.
2) CONFIGURATION DE VSCODE: J'ai constaté que les travaux suivants fonctionnent:
a) Comme Sunew l'a dit à l'étape 2 Ma configuration: utilisez l'explorateur dans vscode pour l'ouvrir dans le dossier de l'espace de travail du projet sélectionné. Pour moi, c’est Q:\420 PYTHON
b) Donnez un nom au fichier env, comme le fichier vscode.env, et placez-le dans ce dossier au niveau supérieur de l'espace de travail.
c) Ouvrez les paramètres vscode et recherchez .env où sous Extensions> Python, vous trouverez "Python: fichier env". Modifiez le champ pour ajouter le nom de votre fichier env juste avant .env, par exemple $ {workspaceFolder} /vscode.env
d) importer custom_modulename fonctionne maintenant pour moi - dans la fenêtre interactive python) et dans un script.
Mettre PYTHONPATH dans .env fonctionne pour moi. Notez que l'effet concerne uniquement vscode et les outils qu'il exécute, tels que pylint.
Ma situation: j'ai un projet qui n'est pas un paquet installable par pip, mais simplement un dossier source. (Pour des raisons historiques ...)
myproject/src
Le projet a des dépendances définies dans un fichier pip requis.
Ma configuration:
myproject
- donc cela devient la racine du vscode "projet".PYTHONPATH=./src:${PYTHONPATH}