如果您是Python用户,您可能已经熟悉了方便的技术,因此您可以使用在Mac OS的命令行中输入的简单命令字符串立即创建一个简单的Web服务器。但是,如果你是一个已经安装或更新到Python 3的Mac Python用户,你会发现以前Python版本中的传统命令字符串无法在新的Python 3.x版本中启动Web服务器。
不用担心,简单的Web服务器Python技巧依然适用于Mac的Python 3(当然也适用于Linux和Windows但适用于Linux和Windows但适用于MacOS)。这是因为命令语法略有不同。我们将向您展示如何使用Python 3通过使用Python 3.0来启动一个简单的Web服务器,这相当于python -m SimpleHTTPServer命令。
假设您已经在Mac上安装或更新到Python 3.0。该命令的变体需要Python 3.0或更高版本。
在命令行上准确输入以下语法*:
python -m http.server
或者(取决于Python 3.x的安装和命名方式):
python3 -m http.server
按回车键Python 3将立即从执行命令的目录启动一个简单的HTTP服务器。
如果目录中没有网络文件,Python 3中的http.server将在终端中运行,而不显示目录索引本身。
您可以通过在计算机上的任何网络浏览器中打开以下网址来立即测试它:
http://0.0.0.0:8000
所有网络服务器活动(如访问单个文件夹目录等。)将在活动的Python终端窗口中实时显示,就像在Apache或Nginx服务器上添加Web日志一样。
*重要提示:如果python和python3同时安装,可能需要稍微更改语法,以引用python3和python2或其他python版本。这将取决于您如何在Mac上更新到python3,但是一个常见的例子将使用“Python 3”命令来代替:
python3 -m http.server
像以前一样按回车键,活动目录将被转换为网络服务器。
Python3简单的带有HTTP的Web服务器。
Python3相当于python -m CGIHTTPServer是什么?
另一个常见的技巧是使用python中的CGI (Universal Gateway Interface,通用网关接口)服务器来处理Python或perl中的CGI脚本,因此如果需要运行对应于CGI命令“python -m CGIHTTPServer”的python3,如下所示:
python3 -m http.server - cgi
或者,如果安装了Python 3并命名为Python,命令将只是:
python -m http.server - cgi
无论哪种方式,您都需要CGI标志来启动Python 3中的CGI HTTP服务器。
我收到一条错误消息“/usr/bin/python:没有名为http”的模块。我现在该怎么办?
如果您看到“/usr/bin/Python:没有名为http”的模块错误,那么您可能没有运行python3或者对Python 3使用了错误的命令(也就是说,python vs python3取决于版本是如何命名的,以及如何在Mac上安装或更新版本)。也有可能根本没有在电脑上安装Python,尽管Python不太可能安装在Mac上,因为默认情况下Python2安装在Mac OS上,尽管用户必须在Mac上手动安装更新后的Python 3.x,同时保留原来的Python 2.x发行版。这通常是通过家酿实现的。
更改以上语法,或者如果您使用的是早期版本的Python,请尝试在Python 2和更高版本中使用“python -m SimpleHTTPServer”命令。
当然,python简单的Web服务器不适合生产环境,但实际上只适合快速笔记本或测试环境。如果您想运行开放或更通用的网络服务器,您想使用像Apache或Nginx这样的服务器,尽管在Mac上单独配置它们需要一些设置,以便在Mac上实现完整的网络服务器环境。一个更简单的选择是使用MAMP,这使得在Mac上设置和启动一个完整的ApacheMySQLPHP环境变得非常简单。