0

我需要帮助。有没有可能让python在windows中启动命令行并让命令行在我的电脑上执行另一个python版本的脚本?

示例:我的电脑上有两个版本的 python。一个在 Anaconda 中,另一个是纯 Python。现在我有一些我想按特定顺序执行的脚本。我的问题是,Google Analytics API 不适用于 Anaconda,而其他一些软件包(如 Simpy)不适用于纯 Python。所以我需要为一个项目使用两个不同版本的python。

现在我想编写一个小 Python 文件,它打开命令行并在我的不同 Python 版本上以特定顺序执行脚本。

我知道如何在命令行上运行 python 文件。这是通过

C:\path_to_python\python.exe C:\path_to_file\file.py

但是我怎样才能让一个 python 脚本在命令行中执行上面的那一行呢?

希望可以有人帮帮我。

谢谢。

4

4 回答 4

5
import os
os.system("C:\path_to_python\python.exe C:\path_to_file\file.py")

os.system() 返回命令的退出值,因此如果您需要脚本的一些输出,这将不起作用。

于 2016-04-29T08:24:05.167 回答
4

我建议你看看subprocess

# this is new to python 3.5
import subprocess
cmd = subprocess.run(["C:/path_to_python/python.exe", "C:/path_to_script/script.py"], stdout=subprocess.PIPE)
return_string = cmd.stdout

# alternative for getting command output in python 3.1 and higher
import subprocess
return_string = subprocess.check_output(["C:/path_to_python/python.exe", "C:/path_to_script/script.py"])
于 2016-04-29T08:24:54.467 回答
1

相反,您可以尝试编写一个批处理文件 ,您可以在其中指定运行文件的顺序以及运行文件的版本。假设首先我想在 python2.7 中运行一个文件,然后在 python3.4 中运行一个文件,我的文件在 d:/pythonfiles

运行序列.bat

d:
cd D:\pythonfiles
c:\python27\python.exe python27file.py
c:\python34\python.exe python34file.py 
于 2016-04-29T08:35:29.007 回答
0

试试这个,让我知道:

import sys

with open(sys.argv[1], 'r') as my_file:
     exec(my_file.read())
于 2019-01-22T18:06:24.490 回答