簡體   English   中英

在網絡上執行Python程序

[英]Executing Python program on web

我可以使用os.system()subprocess.call()對網絡服務器執行的Python程序?

我的意思是,我可以在.py腳本中編寫這些功能,然后從網絡瀏覽器中運行它並期望該程序被執行嗎?

非常感謝。

編輯:對不起,所有的混亂,我給你更多的背景我的問題。

我要這樣做的原因是這樣的。 我有一個Python程序,該程序接受XML文件並向我返回TTF文件。 我在終端中像這樣運行該程序:

ttx somefile.xml 

之后,它將完成所有工作並生成一個ttf文件。 現在,當我將此腳本部署為Web服務器上的模塊時。 我使用來允許用戶瀏覽和選擇XML文件。 然后,我將文件數據讀取到臨時文件,然后將該文件傳遞給要執行的模塊腳本,如下所示:

ttx.main([temp_filename]) 

這是正確的方法嗎? 因為在這一點上,我在日志或瀏覽器中都沒有收到任何錯誤。 我出現黑屏。

當這個沒有工作,我會嘗試os.systemsubprocess.call

您不使用os.system或subprocess.call將某些內容作為cgi進程執行。

也許您應該在這里閱讀Python cgi教程:

http://www.cs.virginia.edu/~lab2q/

如果您希望cgi進程與本地計算機上的另一個進程進行通信,則可能需要查看Python的“ REST框架”。

是的,我一直都這樣做。 像平常一樣導入,將.py粘貼到cgi-bin文件夾中,並確保服務器能夠處理python。

另一種選擇是僅在Google的App Engine上創建一個應用程序。 這為您提供了大量執行Python的資源和API。

http://code.google.com/appengine

只要將服務器配置為運行CGI腳本(例如,有關Apache的文檔在此處 ),是的,您可以從Web服務器執行python腳本。 只需確保腳本在適當的cgi-bin /目錄中,並且該文件具有服務器上的可執行權限。

關於您的意見:

  1. 如果確實需要,可以明確允許服務器上的其他文件夾運行可執行代碼。 我不知道您使用的服務器是什么,但是在Apache上,這是通過為所需的文件夾設置Option +ExecCGI來完成的。 同樣,請參閱我鏈接到的文檔。
  2. 您需要提供相對於服務器的絕對路徑。 例如,我開發的網站的布局為:/ public_html / cgi-bin /當我要訪問.cgi或.py文件時,該網站的網址類似於http://chess.narnia.homeunix.com /cgi-bin/index.cgi 您還可以根據需要設置對某些文件的重定向。
  3. 通過瀏覽器傳遞參數的一種方法是像HTTP POST方法一樣將其附加到URL。 這是一個很好的例子。

這是您在尋找問題時想要的東西,還是您想使用os.system()實際調用 python腳本?

在IIS 5及更高版本的經典ASP中,我已經做了很多工作。 我會讓ASP引擎執行python代碼(而不是例如vbscript(在這里回溯到過去))。 在這些asp頁面的后面是用直接python編寫的python模塊,可以將其導入並執行幾乎任意代碼。 正如其他人提到的那樣,有效用戶需要對您要執行的事情具有執行權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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