如果您是Python用户您可能已经熟悉了方便的技巧使您可以使用在Mac OS命令行中输入的简单命令字符串立即创建简单的Web服务器但是如果您是已经安装或更新到Python 3的Mac Python用户那么您会发现以前的Python版本中的传统命令字符串无法在新的Python 3.x +版本中启动Web服务器
不用担心简单的Web服务器Python技巧仍然适用于Mac(当然也适用于Linux和Windows但适用于Linux和Windows但适用于MacOS)的Python 3这是因为命令语法稍有不同我们将向您展示如何通过使用新的等效于python -m SimpleHTTPServer命令的Python 3.0+使用Python 3启动简单的Web服务器
我们假设您已经在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将在终端中运行而不显示目录索引本身
您可以通过在计算机上的任何Web浏览器中打开以下URL来立即进行测试:
http://0.0.0.0:8000
所有Web服务器活动(例如访问单个文件文件夹目录等)都会在活动的Python终端窗口中实时显示就像在Apache或Nginx服务器上添加Web日志一样
*重要说明:如果同时安装了python和python3则可能需要稍微更改语法以引用python3和python2或其他python版本这将取决于您如何在Mac上更新到Python 3但是一个常见的示例将改为使用“ python3”命令:
python3 -m http.server
和以前一样按回车键活动目录将被转换为Web服务器
带有HTTP的python3简单Web服务器
什么是python -m CGIHTTPServer的Python3等效项
另一个常见的技巧是将Python中的CGI(通用网关接口)服务器用于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的模块”现在该怎么办
如果在尝试执行python -m http.server命令字符串时看到“ / usr / bin / python:没有名为http的模块”错误则您很可能没有运行Python 3或者对python3使用了错误的命令(即python vs python3取决于版本的命名方式以及在Mac上如何安装或更新版本)也有可能根本没有在计算机上安装Python尽管在Mac上不太可能安装Python因为在Mac OS上默认安装了Python2尽管用户必须在Mac上手动安装更新的Python 3.x同时保留原始版本 Python 2.x发行版本通常这是通过Homebrew实现的
更改上述语法或者如果您使用的是早期版本的Python请尝试使用Python 2及更高版本中的“ python -m SimpleHTTPServer ”命令
当然python简单的Web服务器并不适用于生产环境它们实际上仅适用于快速便笺本或测试环境如果您要运行公开的或更通用的Web服务器则希望使用Apache或Nginx之类的服务器尽管在Mac上单独配置它们需要一些设置在Mac上一个完整的Web服务器环境的一个更简单的选择是使用MAMP它使在Mac上设置和启动一个完整的ApacheMySQLPHP环境变得非常简单