从子进程导入python失败

时间:2017-05-20 00:40:13

标签: python makefile

我一直在研究一些调用一些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'

它仍然失败。有谁知道发生了什么?

此致

1 个答案:

答案 0 :(得分:3)

您似乎在Linux中运行。 CREATE_NEW_CONSOLE常量仅适用于Windows。

https://docs.python.org/3/library/subprocess.html#subprocess.CREATE_NEW_CONSOLE

特别是第17.5.4节的标题:

  

STARTUPINFO类和以下常量仅在Windows上可用。