我有一个包含以下命令的 bat.bat 文件:'setup.py build'
我有一个使用以下命令执行此 bat 命令的脚本:
os.system('E:/bla/FPtest/retryURL/Temp_installed/bat.bat'
如果我从与 bat.bat 相同的文件夹中运行脚本......它可以完美运行。
如果我在任何其他文件夹中运行它,则会返回以下错误。
**'setup.py'** is not recognized as an internal or external command, operable program or batch file.
我也尝试过subprocess.Popen
返回相同的结果,但它包含在顶部:C:\Eclipse\Workspace\example>setup.py build
... mmmmmm ...
更新:
我决定在保存 bat.bat 文件的同一目录中运行 os.system 命令(这也是存储 setup.py 的目录)
现在的电话应该就这么简单了。
import os
os.system('bat.bat') note: (run from pydev)
结果:
E:\App\FPtest\retryURL\Temp_installed>setup.py build
Traceback (most recent call last):
File "C:\Python31\lib\site.py", line 56, in <module>
import os
File "C:\Python31\lib\os.py", line 380, in <module>
from _abcoll import MutableMapping # Can't use collections (bootstrap)
File "C:\Python31\lib\_abcoll.py", line 49
class Hashable(metaclass=ABCMeta):
^
SyntaxError: invalid syntax
附加说明:
如果我运行任何“简单”的 .bat 文件,一切正常。如果我在解释器之外运行 .bat 文件,它也可以正常工作......这让我相信是 .bat 文件的内容导致了问题,内容是:setup.py build
。
在这种情况下,.bat 文件的内容会执行一个 cx_freeze 命令来冻结和执行,但上面的错误是我尝试这个时返回的
更新:
如果从标准 python 解释器运行,它似乎正在运行 'os.system('bat.bat') 或子进程等效成功执行 .bat 文件。所以只有从 Pydev 运行才会不成功