“找不到默认的python”通过ColdFusion的OS.system方法执行python脚本时

问题描述

我在 Windows 服务器上有一个名为 optimize.py 的 python 脚本,它使用 os.system() 方法调用其他三个 python 脚本 4 次。

print('Creating input files for optimization algorithm...\n')

os.system("example.py 2 2 0 1")
os.system("example.py 3 3 0 1")
os.system("example.py 4 4 0 1")
os.system("example.py -1 10 0 1")

当我自己执行 optimize.py 时,这非常有效。但是,当它从我在同一台服务器上运行的 ColdFusion 应用程序执行时,每次尝试调用 example.py 时都会收到错误“找不到认 Python”。脚本的其余部分运行良好。

这是执行 python 脚本的 ColdFusion 代码

<cf_exec cmd="cmd.exe">
    cd C:\xxx_Optimization\
    "C:\Program Files\Microsoft sql Server\Client SDK\ODBC\170\Tools\Binn\bcp.exe" [sql_Table] out [directory] -c -t,-U [user] -P [password] -S [server]
    cd C:\xxx_Optimization\pyOptimization\
    python C:\xxx_Optimization\pyOptimization\optimize.py
    <cfoutput>#pyUniqueZipCommand#</cfoutput>
    date /t > pyDone.txt
</cf_exec>

我已经将 python 添加到 PATH 中,并且我也遵循了 this post 中的答案,但无济于事。谁能告诉我我在这里做错了什么,或者建议替代 os.system 来执行这些脚本?

编辑:我也试过在 OS.system 方法中指定整个文件路径,但我收到了同样的错误

解决方法

如果 Can't find a default Python 错误仅在尝试从初始 Python 脚本中调用更多 Python 脚本时返回 - 即如果您的 ftypePATH 设置已知良好 -那么问题在于新的上下文,请尝试:

os.system(sys.executable + "example.py 2 2 0 1")

os.system("python example.py 2 2 0 1")