如何为我的Python脚本创建一个网页界面?

我在我的大学办公室里有一台电脑,上面安装了Ubuntu操作系统,运行着ssh和Python。我自己使用ssh连接到这台电脑上,运行Python程序并查看输出结果。只是命令行输出,没有什么花哨的东西。
然而,我有一个同事也想要做同样的事情。不幸的是,他对IT不太擅长,所以我不想让他费心去熟悉ssh的整个过程。我正在寻找一个简单的替代方法,让他能够运行程序并查看(命令行)输出结果。
在这种情况下,运行程序意味着被限制在一个特定的文件夹"myFolder"中,并在该文件夹内执行"python file1.py"命令。
Ubuntu操作系统是否已经安装了Apache或其他Web服务器?我是否可以为他设置另一种通信方式?他正在使用Windows 7操作系统。

考虑安装Webmin。仅为运行命令而言,它可能有些过于强大了,但对于一般的管理工作来说,它非常有用。 - muru
4“如何创建一个网页界面”与Ubuntu无关,而是一个普遍的编码问题。尝试在谷歌上找到一些有用的内容并加以利用。 - Rinzwind
1使用Flask创建一个项目... - wb9688
你在询问一个网络解决方案,而你目前使用的SSH只是在互联网上进行操作。我建议你修改你的问题,消除混淆之处。 - andy256
我个人会将您的服务器转变为一个小型的网络服务器,并将这个脚本重新编码为一个小型应用程序,实际上从时间上来说,这与设置任何其他情况一样耗时。 - Sammaye
1你提供这项服务有什么特别的原因吗?如果只是为了让你的朋友在网页浏览器中运行一些Python代码,那么已经有一些网站可以做到这一点。可以查找Skulpt、Trinket或CodeAcademy的Python课程。 - Mirek Długosz
@andy256 我原本的标题是“在线”,而不是“网页”。关于Ubuntu:我想利用已经可能有一些本地支持的方式来做到这一点。最后,我想我会选择Putty或iPython笔记本服务器的替代方案 - 所以在Ubuntu并不是非常相关的情况下都没有选择。但这对我来说现在是清楚的,而不是事前。 - FooBar
4个回答

当然,你可以安装Apache并从那里尝试运行。
对我来说,以下方法似乎更简单:
- (可选)在大学机器上为他创建一个用户账户。这是为了“隔离”他的文件。虽然不是必需的,但可能是个好主意。 - 在你朋友的Windows 7机器上安装putty。 - 创建一个putty会话(如此处所述),并将其放置在桌面上(或其他方便的位置)作为一个图标。确保还配置了用户名和密码。(一个花哨的替代方法是使用pageant进行身份验证) 这样,你的朋友只需要点击一个图标,就会出现一个控制台窗口,他可以直接在其中使用脚本:`python file1.py`。

我喜欢这个:-)Putty <3 - Rinzwind
1Putty的问题在于它只是一个SSH包装器,而不是Telnet,对于非IT人员来说并不友好。他仍然需要了解通过SSH发送的命令以及如何使用它们,因此仍然需要进行培训。 - Sammaye
尽管SSH密钥登录可以减少一些IT知识的要求,因为他可以神奇地登录并可能运行脚本,但仍然需要一定的技术知识。 - Sammaye
@Sammaye:我不同意。Putty确实是一个telnet客户端;请阅读Putty主页的标题。至于另一部分,我理解问题是他的朋友想要“做同样的事情”。这将包括命令行。Putty可以完全抽象出ssh的麻烦,以便最终用户只需面对命令行。而要达到与Apache相同的简化水平,我认为需要更多的工作。 - user23573
对不起,是的,不知道为什么我以为Putty不是Telnet,可能是我脑子一短路。 - Sammaye

你可以设置一个Ipython笔记本服务器。
这里是说明链接
笔记本应该相对容易使用(对于某些应用程序甚至比终端界面更好)。而且你不需要在朋友的电脑上安装SSH客户端,也不需要发明自己的安全协议。

你可以使用Docker来简化IPython的设置,并限制文件系统访问(对于不熟悉的用户来说)。 - jfs

如果你已经在使用Python编码,你可以使用Python 3中的http.server模块或Python 2中的BaseHTTPServer编写一个Web前端程序。然后,你的程序将直接通过HTTP向远程浏览器输出结果。如何实现这一点的细节超出了本站的范围,但根据你的程序而言,可能只需要不到10行代码。
请注意,通过这种方式,你将失去SSH的所有身份验证和授权功能。换句话说,这种方法不允许服务器确保你或你的同事是访问该页面的人。如果其他人发现了正确的URL,他们可以运行你的程序,可能会多次快速连续地运行;他们可能会使其崩溃;他们可能会试图对其进行黑客攻击等等。但如果你认为这些风险是可以接受的,纯Python可能是最简单的选择。
当然,也可以通过HTTPS进行身份验证和授权,但那样就不再那么简单了。

可能更简单的方法是从bottle或者flask这两个微框架开始,创建一个可以安全地提供WSGI应用程序的服务。 - jfs
或者twisted - gaborous

Ubuntu有一个专门为Ubuntu定制和预配置的软件包,其中包括Apache和MySQL,您可以使用sudo apt-get install lamp-server^进行安装。如果您安装了这个软件包,您将需要编写软件来实现您想要的功能,比如一个Web服务,用户输入一个链接,然后在浏览器窗口中看到Python的输出结果。我认为这有点过度杀伤力,除非您希望做更多的事情。
但是,是否在Windows机器上创建一个脚本,通过SSH连接到服务器上执行,并下载输出结果以供查看,会不会更容易呢?对我来说似乎很简单(嗯,我经常这样做,但不使用Windows来做这个;))。

使用类似fabric的工具来运行命令非常简单。 - jfs