You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何指定特定Python 3子版本运行带#!python3的脚本

强制指定Python 3.6.2运行脚本的方案

当然有办法让你的脚本强制用Python 3.6.2执行,下面给你几个实用的解决办法,以及针对你问题的详细解答:

一、直接调用对应版本的可执行文件

这是最直接可靠的方式,你已经提到了思路,只需要把脚本作为参数传给3.6.2版本的python.exe即可。比如你的ArcGIS Pro对应的3.6.2解释器路径大概是这样(请替换成你实际的安装路径):

"C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe" your_script.py

这种方式完全绕开了系统默认的python3别名,精准指定要使用的子版本。

二、修改脚本的Shebang行(针对类Unix终端或支持Shebang的Windows终端)

如果你用的是Git Bash、WSL这类支持Shebang的终端,可以直接把脚本开头的#! python3替换成3.6.2解释器的绝对路径:

#! "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe"
import arcpy
print("Gurminder")

不过要注意:Windows原生的CMD或PowerShell对Shebang的支持有限,这种方式在原生终端里可能不会生效,还是得用直接调用路径的方法。

三、用虚拟环境绑定特定版本(推荐长期使用场景)

如果需要频繁用3.6.2运行这类脚本,建议给3.6.2创建专属虚拟环境,激活后所有python命令都会指向该版本:

  1. 创建虚拟环境(路径替换为你3.6.2的解释器路径):
    "C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe" -m venv py362_arcgis_env
    
  2. 激活虚拟环境:
    • CMD里执行:py362_arcgis_env\Scripts\activate.bat
    • PowerShell里执行:py362_arcgis_env\Scripts\Activate.ps1
  3. 激活后直接运行脚本:python your_script.py,此时用的就是3.6.2版本。

关于指定子版本的参数问题

很遗憾,Python本身没有提供通过python3加参数来指定子版本的功能。python3只是系统默认Python 3版本的别名,它指向哪个子版本完全由系统环境变量的优先级决定——哪个版本的路径排在前面,就会被优先调用。所以没法通过python3 --version 3.6.2这类参数来切换子版本,只能通过上面的路径调用、虚拟环境或者调整环境变量顺序(不推荐全局修改,可能影响其他脚本)来实现。

内容的提问来源于stack exchange,提问作者Gurminder Bharani

火山引擎 最新活动