使用 Popen 运行本地二进制文件时出现“文件未找到”错误

2024-03-20

我正在编写一个 Python 程序来使用 Popen 调用本地二进制文件来捕获其输出。我将目录更改为os.chdir我已经验证该文件在那里。但是,以下代码引发“找不到文件”异常。

谁能告诉我我做错了什么?从不在我的 $PATH 中的目录运行程序是否需要做一些特殊的事情?提前致谢。

try:
    os.chdir('/home/me')
    p = sub.Popen(['./exec', '--arg', 'arg1'], cwd=os.getcwd(), stdout=sub.PIPE)
    out, err = p.communicate()
    print("done")
except OSError as e:
    print("error %s" % e.strerror)

Note 本节 http://docs.python.org/2/library/subprocess.html#popen-constructor文档(强调我的):

如果 cwd 不是 None,则子进程的当前目录将更改为 cwd 在执行之前。注意这个目录不考虑 搜索可执行文件时,因此无法指定程序的路径 相对于cwd.

尝试使用绝对路径Popen.

p = sub.Popen(['/home/me/exec', '--arg', 'arg1'], stdout=sub.PIPE)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Popen 运行本地二进制文件时出现“文件未找到”错误 的相关文章

随机推荐

  • 如何计算滚动 idxmax

    考虑pd Series s import pandas as pd import numpy as np np random seed 3 1415 s pd Series np random randint 0 10 10 list ab
  • 函数对象的好处?

    我知道STL中使用的函数对象只是简单的对象 我们可以像函数一样操作它 我可以说函数和函数对象的工作原理是相同的 如果这是真的 那么为什么我们应该使用函数对象而不是函数呢 主要好处是对函数对象 函子 的调用通常是可内联的 而对函数指针的调用通
  • AngularStrap 选项卡加载 html 片段

    我目前正在使用 Twitter Bootstrap 开发 AngularJS 项目 并尝试将我的 Bootstrap 指令转换为 Angular 我决定使用 AngularStrap 因为它提供了对 Bootstrap Select 的支持
  • 如果 c =a,b,c 的值是多少;

    int a 0 int b 1 int c a b int d a b 在初始化之外 逗号 ina b is the 逗号运算符 并评估为b 涉及行中的括号d造成这样的情况 所以该行实际上相当于 int d b 然而 在涉及c 这不是逗号运
  • 如何解决 Java Swing 登录窗口中的这些可视化问题?

    我是 Java Swing 的新手 但我遇到了一个问题 我必须创建一个登录窗口 灵感来自这样的图像 像这样 scilicet 窗口必须显示 2 个文本字段 用户在其中插入用户名和密码以及一个按钮来执行登录操作 好的 我认为这非常简单 我已经
  • bind_param 中的参数数量未知[重复]

    这个问题在这里已经有答案了 当您不知道要接收的参数数量时 你们会怎么做 例如 if a 1 filter AND u name if b 1 filter AND u address if c 1 filter AND u age if d
  • 将布尔值序列化为“1”和“0”而不是“true”和“false”

    我在上面找不到任何方法Boolean类将布尔值序列化为 1 和 0 而不是 true 和 false 有没有本地函数可以做到这一点 如果不是 最好的方法 最优化的方法 是什么 更新 我确实想制作一个String出于一个Boolean If你
  • 将上下文变量与 IBM Watson Conversation 中的实体进行比较

    在 Watson 对话对话框中 我创建了一个条件 就像是 if stored state states Florida AND preferred joint joint KFC then some response where store
  • 安卓。如何沿对象面向的方向移动对象(使用 Vector3 和四元数)

    我正在使用 libGDX 事实上对它来说相当新 和 Android 我想沿 3d 对象所面向的方向移动 使用一定的速度 我认为这是一个基本问题 但找不到直接答案 我有一个代表对象旋转 方向 的四元数 有一个代表对象位置的 Vector3 问
  • FreeTDS - tsql 连接,isql 失败

    我正在尝试连接到我的主机 Windows XP SQL Server 05 上的数据库 我的客户机器是 Ubuntu 10 04 我可以使用 tsql 连接并执行命令 但 isql 失败 以下是我的配置文件和错误消息 freetds con
  • UITableView 部分未按预期排序

    我正在使用带有自定义部分标题的 tableView 核心数据对象根据称为 sectionIdentifier 的瞬态属性的值显示在精确的部分上 一切都按预期工作 但各部分的顺序没有按我的预期响应 这应该是部分顺序 1 OVERDUE sec
  • 匿名函数和内存消耗

    就内存消耗而言 这些是否等效 或者我们是否为后者中的每个对象获得一个新的函数实例 var f function alert this animal var items for var i 0 i lt 10 i var item anima
  • 如何重置 Apache Archiva 密码

    我正在使用 apache archiva 2 2 0 版本 我丢失了管理员密码 因此我想重置管理员用户的密码 我尝试通过删除下面提到的文件来重置密码 apache archiva 2 2 0 data databases users dbe
  • 检测 pandas.DataFrame 中的列是否是分类的好的启发式是什么?

    我一直在开发一个工具 可以自动预处理 pandas DataFrame 格式的数据 在此预处理步骤中 我想以不同的方式处理连续数据和分类数据 特别是 我希望能够应用 OneHotEncoder 等only分类数据 现在 假设我们提供了一个
  • Python 3 默认编码 cp1252 [重复]

    这个问题在这里已经有答案了 我最近在索尼 vaio windows 10 系统上使用 anaconda 4 1 1 python 3 5 2 安装从 Biopython 模块解码句柄 错误映射 0x81 0x8D 时遇到了一些问题 经过一番
  • bash 逗号分隔值的逆序

    我有以下元素列表 a b c 1337 d e 我希望我有 e d 1337 c b a 我怎样才能在 bash 中实现这一目标 你可以这样做awk bin bash awk BEGIN FS OFS for i NF i gt 0 i p
  • Maven 与 Android - R.java 文件生成 (Eclipse)

    我正在尝试将 R java 生成工作到 gen 文件夹中的项目 实际上 应用程序在使用 maven 构建时构建 但是 eclipse 发现错误 因为它无法解析 R java 文件 实际上在每次构建后放入 target generated s
  • CodeIgniter 和 Oracle 数据库 - ActiveRecord insert() 在查询中添加双引号

    我正在使用 CodeIgniter 框架版本 2 2 和 Oracle 11g 数据库 在database php中我的配置如下所示 与 CodeIgniter 的数据库连接良好 当我尝试使用 CodeIgniter 的 ActiveRec
  • c#图表控件,垂直滚动缩放问题[“Stuck Scroll bar”]

    我有一个带有大型 C 图表控件的程序 我允许用户选择任何区域来进行缩放 它将放大 这一切都很好 当我水平滚动时 这也工作得很好而且非常流畅 但是 当我尝试垂直滚动时 滚动条不会移动 我唯一能做的就是使用滚动条上的向上和向下箭头键 这只会给出
  • 使用 Popen 运行本地二进制文件时出现“文件未找到”错误

    我正在编写一个 Python 程序来使用 Popen 调用本地二进制文件来捕获其输出 我将目录更改为os chdir我已经验证该文件在那里 但是 以下代码引发 找不到文件 异常 谁能告诉我我做错了什么 从不在我的 PATH 中的目录运行程序