我一直在研究一些调用一些python脚本来执行各种任务的makefile。到目前为止,我一直make
安装了Ubuntu 16.04(64位)的机器。今天,我尝试使用相同的makefile在我的旧32位机器上使用Lubuntu 16.04构建,并且在调用Python脚本时失败。
起初,我认为我的Python版本不够新,但我也安装了Python 3.5,并且我在makefile中将行更改为python3
,但它仍然失败:
python3 /home/morane/Documents/Programming/ConnectX/cxPythonTools/RunUnitTests.py -t /home/morane/bin/tests/unit/cxUnitTests.out -l /home/morane/bin/tests/unit/log/unitTests.log
Traceback (most recent call last):
File "/home/morane/RunUnitTests.py", line 41, in <module>
from subprocess import CREATE_NEW_CONSOLE
ImportError: cannot import name 'CREATE_NEW_CONSOLE'
Makefile:51: recipe for target 'unittests' failed
make: *** [cxbaseunit] Error
为了测试,我试图直接在Python shell中重复错误:
Python 3.5.2+ (default, Sep 22 2016, 12:18:14)
[GCC 6.2.0 20160927] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> from subprocess import CREATE_NEW_CONSOLE
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name 'CREATE_NEW_CONSOLE'
它仍然失败。有谁知道发生了什么?
此致
答案 0 :(得分:3)
您似乎在Linux中运行。 CREATE_NEW_CONSOLE
常量仅适用于Windows。
https://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NEW_CONSOLE
特别是第17.5.4节的标题:
STARTUPINFO类和以下常量仅在Windows上可用。