0

这发生在 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

我不明白。它在那里是可执行的。为什么我启动时它不存在。

4

4 回答 4

4

您正在运行 x86_32 位可执行文件d8(顺便说一句,尽管有注释)。如果 (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 构建。

于 2013-08-04T13:02:17.120 回答
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

于 2013-08-04T13:08:34.690 回答
0

你为什么不试试这个:

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

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

于 2013-08-04T13:02:10.550 回答
0

添加完整文件路径似乎可以解决 Python 3.x 中的错误。

例子:/home/[your_username]/support/d8/d8

您可以使用pwd获取当前目录的路径。然后添加您的文件名,您就可以开始了。

示例:假设pwd输出/home/jakob/project并且您的脚本被称为test.py该行必须如下所示os.system('/home/jakob/project/test.py')

PS:不要忘记import os在脚本的开头。

于 2021-11-24T08:42:17.643 回答