J'ai un package que j'ai installé à partir d'un environnement virtuel. Si je lance simplement l'interpréteur python, ce package peut être importé très bien. Cependant, si je lance Idle, ce package ne peut pas être importé (car il n'est disponible que dans un virtualenv particulier et non global). Comment puis-je lancer Idle à partir d'un virtualenv, afin que tous les packages du virtualenv soient disponibles ?
Réponses
Trop de publicités?Pour Python 3.6+, veuillez consulter la réponse de Paul Wicking ci-dessous .
En Python avant 3.6, IDLE est essentiellement
from idlelib.PyShell import main
if __name__ == '__main__':
main()
Vous pouvez donc le lancer vous-même à moins que vous n'ayez construit le virtualenv sans packages par défaut.
Python 3.6 modernisé et refactorisé idlelib
. Ce changement comprenait le changement de nom de plusieurs méthodes. Pour cette raison, idlelib.PyShell
doit maintenant être accessible avec idlelib.pyshell
. L'extrait suivant est basé sur la réponse acceptée et devrait fonctionner pour n'importe quelle version de Python :
#!/usr/bin/env python
"""Simple script to run Idle from a venv in PyCharm."""
try:
# Import for Python pre 3.6
from idlelib.PyShell import main
except ModuleNotFoundError:
# Import for Python version 3.6 and later
from idlelib.pyshell import main
if __name__ == '__main__':
main()
J'utilise le système d' exploitation Ubuntu 15.04. J'ai installé des packages à l'aide de virtualenv .
Donc, pour exécuter les fichiers à l'intérieur de virtualenv, y compris ces packages, j'utilise les commandes suivantes dans le terminal
(Le nom de mon environnement virtuel est venv ):
#Activate the virtualenv venv
source venv/bin/activate
#To Run IDLE in virtualenv venv
python -m idlelib
Après avoir exécuté IDLE , vous pouvez ouvrir le fichier à l'aide du raccourci clavier ctrl+o.