从浏览器运行Python应用程序

2 投票
3 回答
4888 浏览
提问于 2025-04-18 06:09

我刚开始学习编程,最近在空闲时间学Python。为了给自己一个挑战,我为一个课堂项目做了一个简单的文字冒险游戏。这个项目不是编程课,所以教授可能不知道怎么编译一个原始的Python脚本,更不用说在他们的Mac上运行Python解释器了。

所以,我想问,能不能在浏览器里运行Python呢?我想象的是一个HTML文件,教授或者其他人可以点击这个文件,然后在浏览器里玩我的游戏。

我在研究这个问题时,了解到一个叫Django的东西。但是我对它一点都不了解,也不知道怎么用。再次强调,我对编程还是很陌生,所以如果你能用简单的方式解释一下,那就太好了。

补充:我发现了另一个讨论串,里面有个用户问了类似的问题,但我不太明白那个被认可的回答:

从浏览器执行Python应用

3 个回答

0

到目前为止,所有的回答都假设你的游戏可以作为一个网页应用来展示。要做到这一点,你需要把你的程序(或者其中的一部分)写成Javascript,但这可能不太好实现,因为现有的编译器(比如 pyjs)功能比较有限。

如果你是用图形用户界面(GUI)工具制作的程序,比如用'Tkinter'、'Pygame'、wxPythonPyQt等,那么最好的选择就是使用 py2apppyinstaller 把你的程序打包成一个Mac应用。

3

你可以在内部网络上搭建一个网站,并从那里运行程序。想了解更多关于Python CGI编程的内容,可以点击这里,学习如何制作一个表单来执行你的脚本,并把结果以网页的形式显示出来。

比如,你可以有一个表单,里面会有输入框:姓名: _, 值: __, 提交

当用户按下按钮后,浏览器会向Python程序发送请求,执行它,然后把结果以网页的形式展示给用户。

另外,如果你在学校的电脑上使用,通常不需要安装其他第三方模块。不过,在学校网络上搭建网站之前,最好先问一下老师。

问题是你的程序是一个“文字冒险”游戏,这需要更多的输入输出管理来适应CGI程序。

你可以把这个答案用在其他项目上。

总之,以下是设置服务器的步骤:

1) 创建一个文件夹来放你的网页,并添加一个“index.html”文件(文件名可以随便)

2) 在文件夹里添加一个favicon.ico文件(这会加快连接速度)你可以下载这个

3) 把这个Python程序放到文件夹里(它将用于搭建网站)

import BaseHTTPServer
import CGIHTTPServer
import cgitb; cgitb.enable()
from socket import gethostbyname, gethostname


def server(port):
    server = BaseHTTPServer.HTTPServer
    handler = CGIHTTPServer.CGIHTTPRequestHandler
    server_address = ("", port)
    httpd = server(server_address, handler)
    print "Server %s:%s started" % (gethostbyname(gethostname()), str(port))
    httpd.serve_forever()

server(4) #You can change this. It is a port number

4) 创建一个cgi-bin文件夹

5) 要让网站可用,执行第3步中创建的程序。要停止搭建,只需关闭Python控制台。

6) 当程序在运行时,你可以在浏览器中输入IP地址:端口作为网址。你会看到你的index.html页面和favicon.ico图标。任何连接到同一网络的人都可以访问这个网站。你自己也可以通过输入http:/localhost:端口来访问网站,"端口"就是你设置的端口号。

7) 剩下的事情需要你自己管理。我不能创建完整的脚本,因为我不知道你的程序里有什么。请阅读开头提供的链接,并修改你的程序以使其在浏览器中正常工作。

顺便提一下,使用不同的端口可以同时搭建多个网站或同一个网站的多个实例。而且,你可以使用Python CGI设置和读取cookies。

如果我的回答中有错误导致某些东西不工作,请留言。我会尽量修正。

4

其实不是这样。你常用的浏览器一般只支持一种编程语言,那就是JavaScript。

不过,你可以使用pythonanywhere,这是一个可以在线使用的Python环境。

你还可以试试skulpt,它是用JavaScript实现的Python。我自己没有试过这个。

撰写回答