有一个项目,我需要使用Python 3.3和2.7。我试图在Python 2.7下启动一个脚本,但它不起作用。这是一个简单的例子。
first.py
import subprocess
import sys
print('Inside first.py')
print(sys.version)
subprocess.Popen(["C:\Python27\ArcGISx6410.2\Python.exe", "second.py"])
second.py
import arcpy
print 'This is second.py'
这不起作用,输出
Inside first.py
3.3.5 (v3.3.5:62cf4e77f785, Mar 9 2014, 10:35:05) [MSC v.1600 64 bit (AMD64)]
File "C:\Python33\lib\site.py", line 173
file=sys.stderr)
^
SyntaxError: invalid syntax
这就是整个堆栈跟踪。如果我要用C:\...Python.exe
替换notepad.exe
,那么它就可以了。我在Windows 7上使用Liclipse。
更新:似乎运行了不同版本的Python,当命令行python first.py
为3.3但py first.py
或first.py
时,则使用2.7。
答案 0 :(得分:1)
尝试:
import os
subprocess.Popen(["C:\\Python27\\ArcGISx6410.2\\Python.exe", "second.py"], env=dict(os.environ, PYTHONHOME="C:\\Python27\\ArcGISx6410.2"))
Windows上的Python有时需要一些帮助来确定要使用的标准库版本。