[英]How can I execute command line program with ./ via a Python script?
我在目錄 ~/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 找到正確包的問題。 I am running Windows with a Ubuntu shell - I tried solving the Ubuntu package problem by changing Ubuntu's PYTHONPATH to the same path as Pycharm's project interpreter, but this didn't work either. 我認為解決上述問題比解決 package 問題更容易。
謝謝您的幫助。
正如之前在評論中討論的那樣,然后包含在對問題的編輯中:
錯誤是嘗試通過 Windows 命令行執行 Ubuntu 程序。 這里的解決方案是通過 Ubuntu 命令行執行 Python 腳本(使用 subprocess.run subprocess.run()
或 subprocess.call subprocess.call()
)。
Insofar as executing Python on Ubuntu can't find Python packages/modules, this is because those packages/modules were installed through the Windows command line, so native/compiled dependencies they included were built for Windows rather than Ubuntu. 即使 Ubuntu 的 PYTHONPATH 指向包的位置,也有一些模塊無法工作,因為它們具有平台原生組件。 解決方案是通過 Ubunutu 再次下載 package(這樣它們適用於 Linux 發行版)。
據我所知,os.exec* 通常適用於 windows 和 linux,但是在某些情況下它確實需要一個或兩個字母來替換“*”。 你必須看看這個,看看你需要哪一個https://docs.python.org/2/library/os.html ex。 os.execl 或 os.execle
subprocess.call 是一個舊版本,它將避免 shell 特定約定的許多問題。 如果問題是上面評論所暗示的 Ubuntu-nativity,這可以解決它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.