首页 > 解决方案 > 如何通过 Python 脚本使用 ./ 执行命令行程序?

问题描述

我在目录 ~/trevor 中有一个程序。使用 Ubuntu,如果我 cd 到这个目录,那么我可以执行这个程序 $./program

但是,我希望能够从 Python 脚本中执行这个程序,但是当我尝试使用

import subprocess.run
subprocess.run("./program")

我收到以下错误:

OSError: [WinError 193] %1 is not a valid Win32 application

我该如何解决这个问题?

我正在通过 Pycharm 的终端运行 python 脚本。我突然想到我可以通过 Ubuntu 的终端运行 python 脚本,但是我在 Ubuntu 找到正确的包时遇到了问题。我正在使用 Ubuntu shell 运行 Windows - 我尝试通过将 Ubuntu 的 PYTHONPATH 更改为与 Pycharm 的项目解释器相同的路径来解决 Ubuntu 包问题,但这也不起作用。我认为解决上述问题比解决包装问题更容易。

谢谢您的帮助。

标签: pythonubuntusubprocessexecutablepythonpath

解决方案


正如之前在评论中讨论的那样,然后包含在对问题的编辑中

错误是尝试通过 Windows 命令行执行 Ubuntu 程序。这里的解决方案是通过 Ubuntu 命令行执行 Python 脚本(使用subprocess.run()或)。subprocess.call()

就在 Ubuntu 上执行 Python 找不到 Python 包/模块而言,这是因为这些包/模块是通过 Windows 命令行安装的,因此它们包含的本机/编译依赖项是为 Windows 而不是为 Ubuntu 构建的。即使 Ubuntu 的 PYTHONPATH 指向包的位置,也有一些模块无法工作,因为它们具有平台原生组件。解决方案是通过 Ubunutu 再次下载该软件包(这样它们适用于 Linux 发行版)。


推荐阅读