J'utilise plusieurs applications qui utilisent les différentes versions de Python:Comment exécuter un script Python dans un interpréteur Python plus récent?
Nuke - 2,7
3Dequalizer - 2.6
linux - 2.6.6
Je reçois divers problèmes en essayant d'obtenir Je me demandais s'il était possible de changer d'interpréteur Python pendant un script.
E.g. Commencez à 2.6, puis exécutez un script Python 2.7 à partir d'un script 2.6
EDIT:
nuke_install = "/path/to/nuke"
cmd = nukeLauncher + " -t"
os.system(cmd)
Le drapeau -t permet nuke être exécuté sans interface graphique. Ce code fonctionne lorsqu'il est exécuté dans un interpréteur Python, mais quand je lance via un script Python en 3dequalizer il me donne:
ImportError: No module named site
Pour ajouter un autre niveau de confusion, je peux importer le site à l'intérieur 3dequalizer. Le sys.path pour 3dequalizer contient les mêmes chemins que lorsqu'il est exécuté directement depuis l'interpréteur, avec quelques ajouts pour la librairie python fournie avec 3de.
De plus, PYTHONPATH est vide dans 3dequalizer. Est-ce important si sys.path pointe vers les bons chemins?
Vous devriez essayer d'écrire des codes qui sont compatibles avec toutes les versions. –
Etes-vous sûr qu'il y a un problème spécifique à la version de Python qui cause vos problèmes de communication, ou supposez-vous que les différentes versions sont votre problème? – SiHa
Je présume ici. J'ai fait beaucoup de tests et je n'arrive pas à comprendre exactement quel est le problème. Mais quand je cours directement à partir de chaque interprète cela fonctionne bien. Je veux principalement pouvoir utiliser 2.7 pour le sous-processus. Mais quand j'utilise os.system, je reçois ImportError en disant Aucun module nommé site. De certaines recherches autour de ces points au chemin python n'étant pas défini correctement. Ce qui m'a fait me demander s'il s'agissait de voir les différentes versions s'affronter. – Elliot