如何运行python脚本#!python3命令和python3的特定子版本

如何运行python脚本#!python3命令和python3的特定子版本,python,python-3.x,subprocess,arcpy,Python,Python 3.x,Subprocess,Arcpy,我有两个版本的Python 3.6.1和3.6.2 我在下面有一个示例脚本: #! python3 import arcpy print ("Gurminder") 默认情况下,该代码使用3.6.1运行,因为我已经指定它使用python3运行 但是,有没有办法强制编译器使用python 3.6.2运行 是否有任何参数可以指定要使用的python解释器的subversion 我知道使用python的解释器可执行文件运行python,例如: "C:\Program Files\ArcGIS\Pro

我有两个版本的Python 3.6.1和3.6.2

我在下面有一个示例脚本:

#! python3
import arcpy
print ("Gurminder")
默认情况下,该代码使用3.6.1运行,因为我已经指定它使用python3运行

但是,有没有办法强制编译器使用python 3.6.2运行

是否有任何参数可以指定要使用的python解释器的subversion

我知道使用python的解释器可执行文件运行python,例如:

"C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe" D:\inetpud_backup_17_04_2018\Gurminder\Cases\02104091\test.py'
该命令在命令提示符下工作正常,但当使用操作系统或子流程模块运行时,我会得到程序文件之间空白的错误


因此,在研究这个问题时,我找到了在标题中指定版本的解决方法。还有什么方法可以定义subversion吗

您可以使用Python 3.6.2的直接路径作为shebang行:

#!C:/Program Files/ArcGIS/Pro/bin/Python/envs/arcgispro-py3/python.exe"
我也看不出有必要这样做。Python3.6.1和Python3.6.2除了修复之外完全相同


在Python 3.6.1和3.6.2中没有不能使用的包。为什么不直接使用3.6.2呢?

让Python为您进行路径转义,例如
subprocess.call([“C:\\Program Files\\ArcGIS\\Pro\bin\\Python\\envs\\arcgispro-py3\\Python.exe”,“D:\\inetpud\u backup\u 17\u 04\u 2018\\Gurminder\\Cases\\02104091\\test.py”])
如果要使用特定的
python.exe
。python 3.6.2包含在安装ArcGIS Pro时内置安装的arcpy库。我将测试同样的结果,并向您更新我的发现。@gurminderbharanisuper。我忘了提到,这是用来在运行脚本时区分多个版本的,所以这适用于任何版本的Python。