gpt4 book ai didi

Python子进程找不到程序

转载 作者:太空宇宙 更新时间:2023-11-04 10:49:07 25 4
gpt4 key购买 nike

我正在尝试从 python 脚本调用 java 应用程序。安装Java时,c:\windows\system32文件夹中添加了一个java.exe程序,此文件夹包含在PATH中环境变量。

运行

import subprocess
import os
subprocess.call("java") //or "c:/windows/system32/java.exe"

结果

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\Program Files (x86)\Quantum GIS Lisboa\apps\Python27\Lib\subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "c:\Program Files (x86)\Quantum GIS Lisboa\apps\Python27\Lib\subprocess.py", line 679, in __init__
errread, errwrite)
File "c:\Program Files (x86)\Quantum GIS Lisboa\apps\Python27\Lib\subprocess.py", line 893, in _execute_child
startupinfo)
WindowsError: [Error 2] Het systeem kan het opgegeven bestand niet vinden

进一步调查,我尝试使用相同的方式运行控制台 (cmd)。在该控制台中执行 dir c:\windows\system32 时,未列出 java.exe!事实上,与从“普通”控制台运行相同命令相比,并没有列出一大堆文件。

我不知道是什么原因造成的,因为完全相同的工作流程在另一台计算机上确实有效。我知道我可以通过直接调用 java 安装而不是 system32 文件夹中的可执行文件来避免这个问题,但我想找到这个问题的根源。

此问题出现在 Quantum Gis 插件中。 Quantum Gis 使用包含的 python 安装,所以我没有自己安装 python。列出的 python 版本是“Win32 上的 2.7.2(默认,2011 年 6 月 12 日,15:08:59)[MSC v.1500 32 位(英特尔)]”。我运行的是 Windows 7 专业版。

最佳答案

不,subprocess.call("java") 永远不会导致抛出 NameError

您运行的是不带引号的:

>>> import subprocess
>>> subprocess.call(java)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'java' is not defined

NameError 异常是 Python 告诉您全局名称 java 未定义 在您的代码中,而不是命令 java 在您的计算机上未找到。

关于Python子进程找不到程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15132901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com