os.system找不到真正存在的文件

时间:2013-08-04 12:53:40

标签: python travis-ci

这发生在python构建中:

#is it executable
print os.access("support/d8/d8", os.X_OK)
#is it there in the shell
os.system("test -f support/d8/d8 && echo \"found\" || echo \"not found\"")

然后:

#run it
os.system("support/d8/d8 --trace_exception with a bunch of files");

输出:

True
found
sh: 1: support/d8/d8: not found

我不明白。它在那里是可执行的。当我开始它时为什么不存在。

3 个答案:

答案 0 :(得分:3)

您正在运行x86_32位可执行文件d8(顺便说一下,comment尽管如此)。如果(Travis)系统是x64,和/或没有所有x86_32库

  • linux-gate.so.1
  • libpthread.so.0
  • libstdc++.so.6
  • libm.so.6
  • libgcc_s.so.1
  • libc.so.6

然后可执行文件将无法运行,因为加载程序无法找到所有必需的库。静态构建和/或x64。

答案 1 :(得分:0)

你为什么不试试这个:

 os.system("./support/d8/d8 --trace_exception with a bunch of files");

我有一个类似的问题,而执行./是一些需要的方法。

答案 2 :(得分:0)

如果您的文件“support / d8 / d8”中不存在“bang line”,则会出现此错误

$ cat support/d8/d8
#!/usr/bin/thisdoesnotexist
echo "hello"
$ chmod 755 support/d8/d8 
$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system("support/d8/d8 --wer")
sh: 1: support/d8/d8: not found
32512