如何在 Mac 上用 Python 3 启动一个简单的 Web 服务器
目录:
如果您是 Python 用户,您可能已经熟悉这个方便的技巧,它允许您使用在 Mac OS 命令行中输入的简单命令字符串立即创建一个简单的 Web 服务器。但是,如果您是已安装或更新到 Python 3 的 Mac Python 用户,那么您会发现以前 Python 版本中的传统命令字符串无法在新的 Python 3 中启动 Web 服务器。x+ 发布。
不用担心,简单的 Web 服务器 Python 技巧在 Python 3 for Mac 中仍然有效(当然也适用于 Linux 和 Windows,但我们显然涵盖了 MacOS),命令语法是只是略有不同。我们将向您展示如何使用 Python 3 启动一个简单的 Web 服务器 通过使用新的 Python 3.0+ 等效的 python -m SimpleHTTPServer 命令。
如何在Python 3.0+中启动Web HTTP服务器
我们假设您已经在Mac 上安装或更新到Python 3.0+,此命令的变体需要Python 3.0 或更新版本。
在命令行中,准确输入以下语法:
python -m http.server
OR(取决于Python 3.x的安装和命名方式):
python3 -m http.server
点击回车,Python 3 将立即从执行命令的目录启动一个简单的HTTP 服务器。
Python 3 中的http.server 将在终端中运行,如果目录中没有web 文件则将显示目录索引本身。
您可以通过在计算机上的任何网络浏览器中打开以下网址立即进行测试:
http://0.0.0.0:8000
所有网络服务器活动,如访问单个文件、文件夹、目录等,将实时显示在活动的 Python 终端窗口中,有点像在 Apache 或 Nginx 服务器上拖尾网络日志.
重要说明:如果同时安装了python 和python3,则可能需要稍微更改语法以引用python3 和python2 或其他python 版本。这将取决于您如何在 Mac 上更新到 Python 3,但一个常见的例子是使用“python3”命令:
python3 -m http.server
和以前一样,按回车键,活动目录将变成一个网络服务器。
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
Either way you'll need the –cgi flag to start the CGI HTTP server in Python 3.
我收到一条错误消息“/usr/bin/python: No module named http”现在怎么办?
如果您在尝试执行 python -m http.server 命令字符串时看到“/usr/bin/python: No module named http”错误,那么您很可能没有运行 Python 3,或者您对 python3 使用了错误的命令(即 python 与 python3,具体取决于版本的命名方式以及它在 Mac 上的安装或更新方式)。也有可能计算机上根本没有安装 Python,不过对于 Mac 来说这种可能性较小,因为 Mac OS 上默认安装了 Python2,不过用户必须在 Mac 上手动安装更新的 Python 3.x,同时保留原始版本Python 2.x 发布版本。通常这是通过 Homebrew 实现的。
更改上述语法,或者如果您使用的是较早的 Python 版本,请尝试使用 Python 2 及之前版本的“python -m SimpleHTTPServer”命令。
当然,python 简单网络服务器并不适用于生产环境,它们确实最适合快速暂存器或测试环境。如果你想运行一个面向公众的 web 服务器或者只是一般来说更健壮,你会想要使用 Apache 或 Nginx 之类的东西,尽管在 Mac 上单独配置它们需要一些设置。在 Mac 上完整的 Web 服务器环境的一个更简单的选择是使用 MAMP,这使得在 Mac 上设置和启动完整的 Apache、MySQL、PHP 环境变得非常简单。
您还知道其他有趣的Python 提示或技巧吗?您是否知道用于启动 http 服务器或其他任何有用的 python 命令字符串?在下面的评论中与我们分享!