【发布时间】:2020-10-01 07:27:44
【问题描述】:
我在 ~/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 包问题,但这也不起作用。我认为解决上述问题比解决包装问题更容易。
感谢您的帮助。
【问题讨论】:
-
这不是 Ubuntu 错误,而是 Windows 错误。这显然不是 Python 的 Ubuntu 原生副本。在 Windows+Ubuntu 系统上使用 Linux 版本的 Python,而不是 Windows。
-
@CharlesDuffy 感谢您的评论。实际上,从我的 Ubunutu 终端运行 python 脚本可以解决 subprocess.run("./program") 问题,但问题仍然是我的 Linux shell 不知道在哪里可以找到我的 python 包,因此脚本的其余部分可以不要跑。我尝试将 PYTHONPATH 更改为似乎安装软件包的位置,尽管这似乎并未涵盖所有软件包,因此脚本仍然失败。有什么想法吗?
-
任何包含(或引入包含)本机 C 模块的 Python 包,您需要安装两次,每个平台安装一次。我建议保留两个不同的虚拟环境。
-
谢谢查尔斯,你是对的。我已经做到了,它有效。干杯!
-
我正在将该解决方案从问题编辑转移到社区 wiki 答案,如 Meta Stack Exchange 帖子 What to do when OP answers his/her own question in an edit? 中所述。 (“社区 Wiki”意味着没有人从投票/接受中获得声誉积分,并且鼓励任何人/每个人进行编辑以改进答案)。这样,您就可以接受答案,从而将问题标记为已解决。
标签: python ubuntu subprocess executable pythonpath