如何通过Python脚本用.执行命令行程序?

问题描述 投票:0回答:1

我在~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找不到正确包的问题。我在Windows下运行Ubuntu shell--我试着把Ubuntu的PYTHONPATH改成和Pycharm的项目解释器一样的路径来解决Ubuntu包的问题,但这也不行。我想解决上面的问题比解决包的问题更容易。

谢谢大家的帮助。

python ubuntu subprocess executable pythonpath
1个回答
0
投票

前文所述,然后被纳入到一个 问题编辑:

错误在于试图通过Windows命令行执行Ubuntu程序。解决的办法是执行Python脚本(使用 subprocess.run()subprocess.call())通过Ubuntu命令行安装的。

至于在Ubuntu上执行Python找不到Python的packagemodules,这是因为这些packagemodules是通过Windows命令行安装的,所以它们所包含的本地编译的依赖关系是为Windows而不是Ubuntu构建的。即使Ubuntu的PYTHONPATH被指向包的位置,也有一些模块不能工作,因为它们有平台原生的组件。解决办法是重新下载软件包,但要通过Ubunutu下载(这样它们才适合Linux发行版)。


-1
投票

据我所知,os.exec*通常适用于windows和linux,但是在某些情况下,它需要一两个字母来代替 "*"。你得看看这个,看看你需要的是哪一个。https:/docs.python.org2libraryos.html。如:os.execl或os.execle。

subprocess.call是一个旧版本,它可以避免很多shell特定约定的问题。如果问题是Ubuntu-nativity,就像上面评论所说的那样,这可以解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.