繁体   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