python os.system 问题:“sh:1:找不到[命令]”;命令交互工作

2023-12-28

我正在尝试从 Python 运行系统调用。我的 Python 脚本中有一行这样读:

return os.system("crux tide-index")

crux是我的程序中存在的一个程序/home/目录,如果我输入命令crux tide-index进入终端,它似乎工作正常。

当我运行 Python 脚本时,它到达上面的行,然后将此行输出到 stderr(即它显示在我的终端的输出中):

sh: 1: crux not found

我不明白为什么我可以在终端中运行该命令,但不能在 Python 脚本中运行。我有什么遗漏的吗?事实是crux在我的/home/文件夹可能有问题吗?


可能的原因

您可以在终端中运行此命令,但不能在 Python 脚本中运行,有多种原因。

  • 它可以被定义为别名。

    如果你有alias crux=~/crux在你的.bashrc或类似的,这可以解释这个问题。

  • 它可以被定义为一个函数。

    crux() { ~/crux "$@"; }是启动 shell 函数的示例crux可执行的。然而,与任何其他函数一样,这是定义它的 shell 的本地函数。 (Bash 有“导出函数”,但这些在 POSIX sh 中不可用,无论如何你都需要不遗余力地使用它们)。

  • 您的交互式 CLI 和脚本之间可以有不同的 PATH。

    如果你有PATH=$PATH:$HOME在 shell 的点文件中的某个位置,这会将您的主目录添加到搜索新可执行文件的位置。就其本身而言,这will被导出到子流程,因此由/bin/sh实例启动于os.system()在 Python 中——但是如果你的脚本是由cron或其他服务,它不会有该 PATH 更新。

调试

Run type crux在您的交互式 shell 中。输出将采用以下形式之一:

  • crux is aliased to `/home/kestrel/crux'意味着它只能通过别名在交互式 shell 中工作。更新您的 PATH 以包含/home/kestrel,或修改您的 Python 脚本以完全限定脚本的位置。
  • ...或者如果你得到:

    crux is a function
    crux ()
    {
        /home/kestrel/crux "$@"
    }
    

    ...它的意思正是它所说的:crux是一个依次调用的函数/home/kestrel/crux。然后你可以把/home/kestrel/crux直接在您的 Python 脚本中。

  • ...或者如果您得到以下任一信息:

    crux is hashed (/home/kestrel/crux)
    

    or

    crux is /home/kestrel/crux
    

    then crux直接位于交互式命令提示符的 PATH 中,但不位于 Python 脚本的 PATH 中。适当编辑与脚本关联的路径。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python os.system 问题:“sh:1:找不到[命令]”;命令交互工作 的相关文章

  • 如何测试顶级窗口是否打开?

    我感觉 Python 编程可能不是我的菜 我创建了一个 tkinter GUI 它使用按钮回调来打开另一个窗口 其他搜索说这个窗口应该是顶级窗口 并且它工作得很好 但是每次按下按钮时它都会打开另一个相同的窗口 如据我所知 窗口 问题 如何测
  • Python:多处理和请求

    以下是我正在运行的使用多处理并行触发 HTTP 请求的代码片段 在控制台上运行后 它挂在 requests get url 处 既不继续前进也不抛出错误 def echo 100 q print before r requests get
  • OpenCV Python 删除图像中的某些对象

    我正在使用带有 opencv 和 numpy 的 python 来检测天文中的星星 例如这个1 https i stack imgur com AKwEJ jpg图片 使用模板匹配 我可以用阈值检测星星 单击 2 2 https i sta
  • 按 ListProperty (NDB) 对查询进行排序

    如何按 ListProperty 对查询进行排序 该模型 class Chapter ndb Model title ndb StringProperty required True version ndb IntegerProperty
  • 使用 GeoDjango 在坐标系之间进行转换

    我正在尝试将坐标信息添加到我的数据库中 添加django contrib gis支持我的应用程序 我正在写一个south数据迁移 从数据库中获取地址 并向 Google 询问坐标 到目前为止 我认为我最好的选择是使用geopy为了这 接下来
  • 在一张图中同时绘制两个截面强度

    我有一个形状数组 512 512 看起来像 行 x 列 y 密度 z 数组的数量 0 012825 0 020408 0 022976 0 015938 0 02165 0 024357 0 036332 0 031904 0 025462
  • 如何通过 Python socket.send() 发送字符串以外的任何内容

    我对 Python 编程非常陌生 但出于必要 我必须快速地将一些东西组合在一起 我正在尝试通过 UDP 发送一些数据 除了当我执行 socket send 时 我必须以字符串形式输入数据之外 一切都正常 这是我的程序 这样你就可以看到我在做
  • Python3模拟用另一个函数替换函数

    如何使用 python 中的另一个函数来模拟一个函数 该函数也将提供一个模拟对象 我有类似以下操作的代码 def foo arg1 arg2 r bar arg1 does interesting things 我想替换的实现bar函数 让
  • python 语言环境奇怪的错误。这究竟是怎么回事?

    所以今天我升级到了 bazaar 2 0 2 我开始收到这条消息 顺便说一句 我在雪豹上 bzr warning unknown locale UTF 8 Could not determine what text encoding to
  • 出现意外的关键字参数“timeout”(Python 中的 google-cloud-storage)

    使用 google cloud storage 的 Python 项目在本地运行良好 但是当它从 App Engine 运行时 会显示错误 Traceback most recent call last File opt python3 7
  • 超时时杀死或终止子进程?

    我想尽可能快地重复执行子进程 然而 有时这个过程会花费太长的时间 所以我想杀死它 我使用 signal signal 如下所示 ppid pipeexe pid signal signal signal SIGALRM stop handl
  • 从文档字符串生成 sphinx 文档不起作用

    我有一个具有以下结构的项目 我想保留 my project build here is where sphinx should dump into requirements txt make bat Makefile more config
  • Scrapy - 不会爬行

    我正在尝试运行递归爬行 由于我编写的爬行不能正常工作 因此我从网络上提取了一个示例并进行了尝试 我真的不知道问题出在哪里 但是爬行没有显示任何错误 谁能帮我这个 另外 是否有任何逐步调试工具可以帮助理解蜘蛛的爬行流程 非常感谢任何与此相关的
  • pandas apply:函数名是否带引号的区别

    简单数据框定义示例 df pd DataFrame A 2 4 1 B 8 4 1 C 6 2 7 df A B C 0 2 8 6 1 4 4 2 2 1 1 7 尝试理解以下块中函数参数调用的差异 df apply sum df app
  • if/else 在 while 循环内正确缩进[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我开始学习 Python 编程大约几周了 我遇到了一些麻烦 下面的代码是一个小程序 用于检查列表中是否有偶数 如果找到第一个偶数
  • 如何在包更新之间保留数据文件?

    我正在使用data files的论证setuptools setup 将配置文件安装到 etc和用户主目录 但是更新包pip install
  • 通过子类化 `io.TextIOWrapper` 来子类化文件 - 但它的构造函数有什么签名?

    我正在尝试子类化io TextIOWrapper下列的这个帖子 https stackoverflow com a 23796737 974555 虽然我的目标不同 以此开始 注意 动机 https stackoverflow com a
  • 带有整数的 np.sqrt 和 where 条件返回错误结果

    当我将 numpy sqrt 方法应用于带有 a 的整数数组时 我得到了奇怪的结果where健康 状况 见下文 对于整数 a np array 1 4 9 np sqrt a where a gt 5 Out 3 array 0 0 5 3
  • 如何在 Python 中解析损坏的 XML?

    我无法影响的服务器发送的 XML 非常损坏 具体来说 Unicode WHITE STAR 将被编码为 UTF 8 E2 98 86 然后使用 Latin 1 转换为 HTML 实体表 我得到的是 acirc 98 86 9 个字节 位于声
  • 如何获取所有Python标准库模块的列表?

    我想要类似的东西sys builtin module names标准库除外 其他不起作用的事情 sys modules 只显示已经加载的模块 sys prefix 包含非标准库模块并且似乎无法在 virtualenv 内工作的路径 我想要这

随机推荐

  • 在 Dart 编程时如何为 VSCode 中的类型着色并添加样式

    在 Dart 中编程时 我想在 VSCode 中更改声明类型的颜色 并可能添加粗体 斜体和其他样式 这可能吗 我认为这将有助于可读性 例如 我希望 Widget BuildContext 和 Loading Container 采用不同的颜
  • 大 O 包含两个相乘的变量

    如果我采用该功能 def nested multiplier a b returns a b count 0 for i in range a for j in range b count 1 return count 这里相当清楚的是 就
  • 直接继承 Trait 失败,但代理有效

    为什么添加代理特征有效而直接继承失败 我在 github 上创建了一个可运行的项目 https github com leftofnull so inheritance 如果您克隆存储库并运行sbt console其次是com stacko
  • Docker 构建陷入 npm run 构建步骤

    我试图创建一个 docker 映像 但它卡在 npm run build 步骤中 我可以看到构建成功完成的消息 但它没有继续进行下一步 在 docker 文件下面 我使用节点 16 13 1 作为基础图像 RUN mkdir p usr s
  • Python3 从同级目录导入模块

    对于 python 3 10 项目中的新结构 我必须将不同的模块彼此分开 并将它们移动到同一层的不同文件夹中 文件夹结构看起来有点类似于 Root main py init py folder1 init py a py folder2 i
  • WPF自定义DatagridColumn绑定问题

    我试图为数据网格定义一个新的列模板 我可以在我的应用程序中重复使用它 但是当我尝试使用它时 我得到 System Windows Data 错误 2 找不到管理 FrameworkElement 或 FrameworkContentElem
  • 在外部 JavaScript 中使用 django 模板标签

    我在 html 页面中包含了一个 js 文件 例如 application js 但我无法在该 js 文件中使用 django 模板标签 有什么方法可以直接在外部 js 文件中使用 django 模板标签吗 前提是你会像模板一样解析 JS
  • JS setTimeout() 替代方案

    就像我解释的那样here http blog mlefree com 2016 02 settimeout alternative as happy new html 我不能再使用 window setTimeout 和任何窗口经典函数 如
  • 使用使用 Vue-CLI 创建的应用程序提供 404 页面

    我正在使用 Vue CLI 创建 Vue 应用程序 我不喜欢的一种行为是任何不存在的 URL 例如 localhost 8080 nonexistent file html 得到服务 代码为 200 就好像它是根一样 localhost 8
  • 更改 git merge 的相似性索引阈值并涉及重命名(例如 diff 上的 -M[n] --find-renames[=n] )

    我们有一些用于重命名检测启发式的配置选项diff log show and merge diff renameLimit执行复制 重命名检测时要考虑的文件数量 相当于 git diff 选项 l 差异重命名告诉 git 检测重命名 如果设置
  • 如何减少RadioButton绑定代码?

    我正在跟进这个答案关于如何将枚举 在我的例子中是整数 数据绑定到RadioButtons https stackoverflow com a 2908885 171121 但是如果我有几个 TabItems 每个 TabItems 都有 1
  • 如何在代码后面设置DataGrid行的背景颜色?

    我创建一个DataGrid我的代码后面的对象并设置内容obj ItemsSource 现在我想在后面的代码中设置特定行的背景颜色 我怎样才能实现这个目标 Update 我创建了DataGrid后面代码中的对象如下 var dataGrid
  • Java 归并排序

    我正在尝试创建一个合并排序方法 但它不断给出错误的排序 我在哪里可以更改以使其真正对数组进行排序 代码的哪一部分必须不同 感谢您的时间 public static void mergeSort int array int left int
  • 使用 django 测试客户端发送 JSON

    我正在开发一个 django 项目 它将作为 webhook 的端点 Webhook 会将一些 JSON 数据发布到我的端点 然后端点将解析该数据 我正在尝试为其编写单元测试 但我不确定是否正确发送了 JSON 我在管道端点中不断收到 Ty
  • Netbeans 和 C++ 安装

    我在使用 Netbeans 7 4 和 Cygwin 4 x 编译 C 程序时遇到了一个小问题 我已经完成了 netbeans 教程中的所有操作 我已经安装了 gcc gdb g 和 make 编译器 Netbeans 属性中的每条路径都已
  • Java FTP 的服务器端实现

    我想建立一个后台没有实际文件的FTP服务器 相反 我希望上传到它的文件立即由我的后端处理 上传目录的文件列表应包含尚未处理的文件 删除或移动应该是不可能的 另外 在下载方面 我想展示我能够提供的那些文件 但文件应根据需要再次由后端创建 由于
  • 为什么 JSP 不支持表单上的“put”方法?有没有办法在jsp表单上使用put方法? [复制]

    这个问题在这里已经有答案了 我正在尝试实施putJSP形式的方法 但似乎是支持的 背后的原因是什么 如果我使用 HTML 而不是 JSP 并调用实现的 servlet 来接受 put 请求 那么它会按预期工作 但相同的代码不能在 JSP 上
  • Flask-Security user_registered 信号在 Python 3.3 中未收到,但在 2.7 中有效

    我正在尝试使用 user registered 信号 以便在用户使用 Flask security 注册时为用户设置默认角色 如下链接所示 在 Flask 安全性中设置默认角色 https stackoverflow com questio
  • 比较浮点数组时 rspec 测试的舍入问题

    我想检查一种方法的结果 result should 1 0 2 0 3 0 但我收到一个错误 expected 1 0 2 0 3 0 got 1 0 2 0 3 0 using 我认为问题在于四舍五入 但我不知道如何比较它们 例如偏差为0
  • python os.system 问题:“sh:1:找不到[命令]”;命令交互工作

    我正在尝试从 Python 运行系统调用 我的 Python 脚本中有一行这样读 return os system crux tide index crux是我的程序中存在的一个程序 home 目录 如果我输入命令crux tide ind