簡體   English   中英

如何使用./ 通過 Python 腳本執行命令行程序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM