我需要一些帮助。是否有可能让python在Windows中启动命令行并让命令行在我的电脑上执行另一个python版本的脚本?
示例:我的电脑上有两个版本的python。一个是Anaconda,另一个是纯Python。现在我有一些我希望按特定顺序执行的脚本。我的问题是,Google AnalyticsAPI不能与Anaconda一起使用,而其他一些软件包(如Simpy)也无法与纯Python一起使用。所以我需要为一个项目使用两个不同版本的python。
现在我想编写一个litte python文件,它打开命令行并在我的不同Python版本上按特定顺序执行scrips。
我知道如何在命令行上运行python文件。这是通过
C:\path_to_python\python.exe C:\path_to_file\file.py
但是如何让python脚本在命令行中执行上面的那行呢?
希望有人可以帮助我。
感谢。
答案 0 :(得分:5)
import os
os.system("C:\path_to_python\python.exe C:\path_to_file\file.py")
os.system()返回命令的退出值,所以如果你需要脚本的一些输出,这将不起作用。
答案 1 :(得分:3)
我建议您查看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"])
答案 2 :(得分:0)
您可以尝试编写批处理文件,您可以在其中指定运行文件的顺序以及运行文件的版本。 先说我想先在python2.7中运行一个文件,然后在python3.4中运行一个文件,我的文件放在d:/ pythonfiles中
<强> RunningSequence.bat 强>
d:
cd D:\pythonfiles
c:\python27\python.exe python27file.py
c:\python34\python.exe python34file.py
答案 3 :(得分:0)
尝试一下,让我知道:
import sys
with open(sys.argv[1], 'r') as my_file:
exec(my_file.read())