Подпроцесс, запуск скрипта в альтернативной версии Python - PullRequest
0 голосов
/ 28 мая 2018

Мой основной скрипт, main.py работает на python3.внутри него я хочу запустить другой скрипт в какой-то указанной версии python.

import subprocess
pysh="/data/data/org.qpython.qpy/files/bin/qpython-android5.sh"
subprocess.call([pysh,'filetext.py'])

Вопрос:

Как использовать подпроцесс для открытия filetext.py вpython2.x или 3.x взаимозаменяемо?

Я пытался:

Я пытался ввести несколько разных аргументов безрезультатно, например:

os.system('python -2 -m filetext.txt')

или

subprocess.call(['py -2 filetext.txt'])

или

subprocess.call(['C:/Python27/python.exe filetext.txt'])

Любая помощь будет очень признательна.

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Попробуйте:

subprocess.call(['C:/Python27/python.exe', "filetext.txt"])

Сначала вы указываете путь к нужному исполняемому файлу, а затем аргументы в другом параметре.

0 голосов
/ 28 мая 2018

Когда я пытаюсь сделать почти то же самое, кажется, что он работает следующим образом:

import subprocess

print(subprocess.call(["python2", "-c", "import sys; print sys.version"]))

При вызове из python3 это печатает 2.7.5.Конечно, это будет зависеть от того, будет ли версия python, которую вы хотите использовать, указывать в PATH, а если нет, вызывать двоичный файл с полным путем.

Не уверен, что это просто опечатка, но я замечаювы сказали, что хотите запустить filetext.py, но вы передаете filetext.txt в своих примерах.

Если это не сработает, я должен знать больше - вы говорите, что это не такработа, а что именно происходит?

...