python - 如何通过 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 包问题,但这也不起作用。我认为解决上述问题比解决包装问题更容易。
谢谢您的帮助。
解决方案
正如之前在评论中讨论的那样,然后包含在对问题的编辑中:
错误是尝试通过 Windows 命令行执行 Ubuntu 程序。这里的解决方案是通过 Ubuntu 命令行执行 Python 脚本(使用subprocess.run()
或)。subprocess.call()
就在 Ubuntu 上执行 Python 找不到 Python 包/模块而言,这是因为这些包/模块是通过 Windows 命令行安装的,因此它们包含的本机/编译依赖项是为 Windows 而不是为 Ubuntu 构建的。即使 Ubuntu 的 PYTHONPATH 指向包的位置,也有一些模块无法工作,因为它们具有平台原生组件。解决方案是通过 Ubunutu 再次下载该软件包(这样它们适用于 Linux 发行版)。
推荐阅读
- jquery - jquery访问动态生成的元素
- jenkins - Jenkins-IntelliJ 理念整合
- jquery - 使用 materialize.css 和 jQuery 重置输入
- tensorflow - 如何在 tensorflow.contrib.layers conv2d 中初始化权重
- xamarin - Xamarin Forms - 在 MasterDetailPage 中隐藏导航栏
- python - Keras 无法加载数据集或应用程序
- android - 在 Android Studio 3.1.3 中添加 SVG 图像时出现内部错误解析
- angular - Angular CLI 代理服务器将响应 404 更改为 200
- json - cakephp 3 休息错误返回为 html CrudJsonApi
- c# - 我可以用吗
在方法声明之外