如何在 Windows 上使用 subprocess.run 运行 bash 命令 [重复]

2024-03-19

我想使用运行 shell 脚本和 git-bash 命令subprocess.run(),在 python 3.7.4 中。当我在上面运行这个简单的例子时子流程文档页面 https://docs.python.org/3/library/subprocess.html有时候是这样的:

import subprocess

subprocess.run(["ls", "-l"])

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\pycharm\project\envs\lib\subprocess.py", line 472, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\pycharm\project\envs\lib\subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "C:\pycharm\project\envs\lib\subprocess.py", line 1178, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified


# it also fails with shell=True
subprocess.call(["ls", "-l"], shell=True)

'ls' is not recognized as an internal or external command,
operable program or batch file.
1

消息来自shell=True是来自 Windows cmd 的消息,表明子进程没有向 git-bash 发送命令。

我正在使用位于的 conda 环境project/envs/python 的文件夹。我还安装了 git-bash。

我也尝试设置环境并得到相同的错误。

import os
import subprocess

my_env = os.environ.copy()
my_env["PATH"] = 'C:\Program Files\Git\;' + my_env["PATH"]
subprocess.run(['git-bash.exe', 'ls', '-l'], env=my_env)

Traceback (most recent call last):
  File "<input>", line 3, in <module>
  File "C:\pycharm\project\envs\lib\subprocess.py", line 472, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\pycharm\project\envs\lib\subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "C:n\pycharm\project\envs\lib\subprocess.py", line 1178, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

我可以通过指向 git-bash.exe 来运行它,但它返回一个空字符串而不是我的目录中的文件

import subprocess
subprocess.run(['C:\Program Files\Git\git-bash.exe', 'ls', '-l'], capture_output=True)

CompletedProcess(args=['C:\\Program Files\\Git\\git-bash.exe', 'ls', '-l'], returncode=0, stdout=b'', stderr=b'')


我将不胜感激任何有关使其正常工作的最佳方法的建议,如上所示子流程文档页面 https://docs.python.org/3/library/subprocess.html.


我发现我可以使用运行命令...Git\bin\bash.exe而不是...\Git\git-bash.exe, 像这样:

import subprocess
subprocess.run(['C:\Program Files\Git\\bin\\bash.exe', '-c','ls'], stdout=subprocess.PIPE)

CompletedProcess(args=['C:\\Program Files\\Git\\bin\\bash.exe', '-c', 'ls'], returncode=0, stdout=b'README.md\n__pycache__\nconda_create.sh\nenvs\nmain.py\ntest.sh\nzipped\n')

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

如何在 Windows 上使用 subprocess.run 运行 bash 命令 [重复] 的相关文章

  • 根据日期列过滤并创建列

    我有一个样本数据如下 date Deadline 2018 08 01 2018 08 11 2018 09 18 2018 12 08 2018 12 18 我想用代码中描述的条件填写截止日期列 如 1 DL 2 DL 3 DL 等 基于
  • 使用组合时如何解决循环依赖?

    我遇到了如下所示的情况 其中每个类都需要另一个类 并且它创建了循环依赖关系 我在使用 ctypes 包装一些 C 代码时遇到了这种情况 已经有很多关于这个主题的帖子 但我发现它们没有帮助 我需要一些例子 Module A from B im
  • 表单输入框不显示

    我正在尝试使用 Django 显示一个简单的表单输入文本框 我正在亚马逊 AWS 上部署 该网站在不同的服务器 pythonanywhere 上运行良好 但在 AWS 上存在主要问题 具体来说 输入框没有被显示 我使用的模板如下 首页 ht
  • python:如何检查一行是否为空行

    试图弄清楚如何编写一个 if 循环来检查一行是否为空 该文件有许多字符串 其中之一是一个空行 用于与其他语句分隔开 不是 我认为是一个回车符后面跟着另一个回车符 new statement asdasdasd asdasdasdasd ne
  • python-messaging 无法处理 HTTP 请求

    我正在使用下面的代码尝试使用 python messaging 发送彩信https github com pmarti python messaging blob master doc tutorial mms rst https gith
  • 使用Python处理Sqlite数据库中的换行符“\n”?

    我有一个名为 test db 的 Sqlite 数据库 其中包含两个表 其结构如下 表 1 ID 整数主键自动增量 名称 varchar 500 颜色 varchar 500 表2 ID INTEGER PRIMARY KEY AUTOIN
  • Dataframe unstack 性能 - pandas

    我正在尝试拆开数据框 它工作正常 但问题是我正在处理 CSV 文件中的巨大数据集 约 10 亿 这是示例数据集 236539 48512569874 Name Danny 236539 48512569874 Class 12 236539
  • 如何修复下载 spacy 模型的“无效语法”

    我尝试在 Jupyter 笔记本上下载 spacy 模型 但它打印出 无效语法 python m spacy download en core web sm 有什么解决方案可以帮助我成功下载模型吗 为了将来帮助某人 对我来说 这个问题是因为
  • 函数内部变量的赋值会改变外部的赋值 - Python

    我从使用 Matlab 转向使用 Python 使用函数时的变量赋值让我感到困惑 我有一个代码如下 a 1 1 1 def keeps x y x y 1 2 return y def changes x y x y 1 2 return
  • 使用 selenium 和 firefox 保存图像

    我正在尝试使用 selenium 服务器和 python 客户端从网站保存图像 我知道图像的 URL 但我无法找到保存它的代码 无论是当它是文档本身还是当它嵌入到当前浏览器会话中时 到目前为止我找到的解决方法是保存页面的屏幕截图 有两种硒方
  • django PermissionRequiredMixin Permission_required 不起作用

    Views py class templateList PermissionRequiredMixin TemplateView permission required accounts template all def get self
  • 如何将 MP3 音频文件读入 numpy 数组/将 numpy 数组保存到 MP3?

    有没有办法从 MP3 音频文件中读取 写入 MP3 音频文件numpy具有类似 API 的数组scipy io wavfile read https docs scipy org doc scipy 0 14 0 reference gen
  • 使用 matplotlib 在 python3 中对多个形状进行动画处理

    尝试在 python3 中使用 matplotlib 动画函数同时对多个对象进行动画处理 下面写的代码是我到目前为止的位置 我能够创建多个对象并将它们显示在图中 我通过使用包含矩形补丁函数的 for 循环来完成此操作 从这里开始 我希望通过
  • 使用Python构建caffe(找不到-lboost_python3)

    我正在尝试用 python 构建 caffe 但它一直这样说 CXX LD o python caffe caffe so python caffe caffe cpp usr bin ld cannot find lboost pytho
  • 数据框更新后如何刷新绘图?

    假设您已经使用以下方法构建了一个图形px line 使用数据框 数据框稍后会添加新数据 用新数据刷新数据的好方法是什么 一个例子可以是px data stocks 从列的子集开始 GOOG AAPL AMZN FB NFLX MSFT 例如
  • 为什么Python安装程序不断弹出?

    每当我尝试运行 Python 文件时 都会自动弹出此窗口 虽然 我可以关闭它 但有时它会连续打开 7 10 个窗口 这令人恼火 谁能告诉我为什么会发生这种情况 None
  • Python UPnP/IGD 客户端实现?

    我正在寻找一个开源实现UPnP http elinux org UPnPPython 中的客户端 更具体地说是它的互联网网关设备 http en wikipedia org wiki Internet Gateway Device Prot
  • Django ImageField 默认值

    模型 py class UserProfile models Model photo models ImageField upload to get upload file name storage OverwriteStorage def
  • python webdriver_manager chrome 自定义配置文件

    如何使 webdriver manager chrome 使用自定义 chrome 用户配置文件 我知道对于 selenium webdriver 我可以这样指定 options Options options add argument f
  • Django中的自动递增值

    我在 django 中有一个表并尝试自动递增它的序列号 在自定义模板中 for 循环用于变量 自定义模板 for i in getodeskview tr td 1 td td i odesk id td td i hours td td

随机推荐

  • MYSQL:类似方法,相似单词 - 但不显示搜索到的单词

    实际上我使用这种方法来显示搜索请求的相似单词 query SELECT FROM searches WHERE Query LIKE search ORDER BY Query 如果有人搜索 nelly 它会在数据库中查找类似的单词 耐莉
  • as.POSIXct 拒绝 +1300 时区

    我在用着as POSIXct用时区解析时间 如下所示 as POSIXct 2009 01 05 14 19 1200 format Y m d H M z 但是 如果字符串包含时区信息 1300 函数返回NA gt as POSIXct
  • SQLGrammarException:ORA-00904(“无效标识符”)

    我收到 Oracle 错误 org hibernate exception SQLGrammarException当我对使用 JPA 和 Spring 的 Java 类运行 JUnit 测试时 ORA 00904 ALIAS COLUMN
  • Wix 自定义对话框

    目前 我们的安装向导使用的是 Wix 经典主题 现在 我们计划改进安装程序的外观和感觉 1 我如何将自定义对话框经典主题更改为其他主题 2 在安装我们的设置时 我们计划显示一些图像 例如幻灯片放映 是否可以像 Wix 中那样显示图像 我是否
  • 镜像两个可写 SVN 存储库之间的子文件夹

    我正在尝试处理涉及我公司的 SVN 服务器的情况 我们将所有重要代码保存在锁定服务器中 我们将其称为 开发 服务器 有些文件需要由公司网络外部的用户编辑 因此我们有另一个 SVN 服务器 全局 服务器 它可以在防火墙外部访问 并且包含那些包
  • Opencv 静态构建,jpeg,png,tiff 不是静态链接?

    我将 opencv 233 构建为静态库 但是当我在应用程序中使用它时 在调用 cv imwrite 时会出现链接错误 tiff png jasp 库未链接 这是我应该在我的应用程序中链接这些我自己的意图还是我错误地构建了它 我希望第 3
  • C# 泛型:“X where T: X”泛型类型约束有什么意义?

    读一本书 NHibernate 3 初学者指南 https www packtpub com application development nhibernate 3 beginners guide我发现了一个令我好奇的片段 实践时刻 创建
  • 使用 Qt,工作线程创建新的 GUI 元素

    我将保持代码简单 以便你们可以看到我正在尝试做什么 我知道所有锁定问题等 我试图弄清楚信号和插槽如何与线程一起使用 在main cpp中 int main int argc char argv QApplication app argc a
  • 欧拉计划 #13 理解 (Python)

    问题13 http projecteuler net problem 13 http projecteuler net problem 13 计算出以下一百个 50 位数字之和的前十位数字 那么 问题的总和是 5000 位 答案是结果的前
  • Hibernate:@SecondaryTable 不起作用

    I know SecondaryTable这些问题已经发布了很多次 所以 如果有相同的问题 我还没有找到 请给我链接或建议 我的数据库中有两个表 firstTable and secondTable 两个 POJO Hibernate 类
  • 选择物化多选中的所有选项

    Bootstrap 多重选择有选择全部的选项 例如这里 https stackoverflow com questions 26525739 boostrap multiselect select all checked by defaul
  • 如何在 C 中连接两个字符串宏?

    我正在尝试为我的程序实现 VERSION 宏 该宏将在某些情况下进行更改 宏 VERSION 通过 Makefile 定义 git 信息放在那里 并且是一个字符串 现在我有一组 define d 开关 我希望 VERSION 能够反映其中哪
  • 如何在 Ruby 中创建简单的数组?

    在 Ruby 中创建这个数组的最短方法是什么 10 20 30 40 50 60 70 80 90 100 谢谢你的帮助 关于什么Range step http www ruby doc org core 2 0 Range html me
  • 在.Net 下为低完整性进程添加写访问权限

    我正在创建一个用于文件创建的 FileSecurity 该文件对于低完整性进程也应该具有写入访问权限 FileSecurity fileAcl new FileSecurity add everyone IdentityReference
  • 在 Symfony2 中配置 Assetic 的输出目录

    我想全局配置 assetic 转储 JS 文件的输出目录 目前 他们总是去web js 我想将其更改为web js compiled 可以在每个文件级别指定它 http symfony com doc 2 0 cookbook asseti
  • [:space:] 和 [:blank:] 有什么区别?

    来自正则表达式简介 http tldp org LDP abs html x17046 html blank 匹配空格或制表符 space 匹配空白字符 空格和水平制表符 对我来说 这两个定义是相同的 我想知道它们是否真的重复 如果不同 有
  • 嵌套文档上的 Azure DocumentDB ARRAY_CONTAINS

    似乎是ARRAY CONTAINS嵌套文档上的函数永远不会匹配任何文档 例如 尝试使用 Azure DocumentDB 进行以下简单查询查询游乐场 https www documentdb com sql demo Sandbox SEL
  • 为什么必须同时使用编译器标志和运行时标志才能在 Haskell 中获得多核支持?

    Haskell wiki 显示您需要同时设置编译标志和运行时标志才能获得多核支持 为什么使用该库不足以在编译时获得正确的行为 为什么运行时可执行文件无法检测到它是使用 threaded 编译的并使用系统上的所有内核 除非另有指定 我认为默认
  • 在 Unix 上正确处理 PID 文件的参考

    我在哪里可以找到备受推崇的参考详细介绍了 Unix 上 PID 文件的正确处理 在 Unix 操作系统上 通常的做法是使用特殊的锁定文件 PID 文件来 锁定 程序 通常是守护程序 这是一个位于可预测位置的文件 通常是 var run fo
  • 如何在 Windows 上使用 subprocess.run 运行 bash 命令 [重复]

    这个问题在这里已经有答案了 我想使用运行 shell 脚本和 git bash 命令subprocess run 在 python 3 7 4 中 当我在上面运行这个简单的例子时子流程文档页面 https docs python org 3