在 Ubuntu 16.04 LTS 上配置 Python 3、Bottle 和 Gunicorn 进行开发

Ubuntu 16.04 长期支持 (LTS) Linux 操作系统于 2016 年 4 月发布。最新的 Ubuntu 版本名为“Xenial Xerus”,它是第一个包含 Python 3 而不是 Python 2.x 的 Ubuntu 版本,作为默认 Python 安装。

我们可以快速启动一个新的 Bottle Web 应用程序项目,并在 Ubuntu 16.04 上使用绿色独角兽(Gunicorn)运行它。

我们需要的工具

我们的设置需要 Ubuntu 16.04 版本以及一些其他代码库。暂时不要安装这些工具,因为我们会在演练过程中使用它们。我们的要求及其截至 2017 年 4 月的当前版本是:

  • Ubuntu 16.04.2 LTS (Xenial Xerus)
  • Python version3.5.1(Ubuntu 16.04.2 默认)
  • Bottle web framework version0.13
  • 绿独角兽(Gunicorn)版本19.7.1

如果您在 Mac OS X 或 Windows 上进行开发,请确保使用带有 Ubuntu .iso 文件的虚拟化软件,例如 Parallels 或 VirtualBox。 16.04的amd64 ori386版本都可以。我自己本地开发用的是amd64版本。

当您启动 Ubuntu 时,会出现这样的桌面屏幕。

打开一个终端窗口来安装系统包。

系统包

通过这些命令我们可以看到Ubuntu自带的python3系统版本及其可执行文件存放的位置。

python3 --version
which python3

我们的 Ubuntu 安装需要一些系统包。我们将收到输入超级用户密码的提示,因为通过 apt 安装软件包需要受限的系统访问权限。

sudo apt-get install python3-pip python3-dev

输入y 让系统包安装过程完成它的工作。

我们需要的包现在已经安装好了。我们可以继续安装特定于 Python 的依赖项。

虚拟环境

在上一节中,安装了 virtualenv 和 pip 来处理我们的应用程序依赖项。我们现在可以使用它们来下载和安装 Bottle 和 Gunicorn。

为虚拟环境创建一个目录。然后创建一个新的 virtualenv。

# make sure pip and setuptools are the latest version
pip3 install --upgrade pip setuptools
# the tilde "~" specifies the user's home directory, like /home/matt
cd ~
mkdir venvs
# specify the system python3 installation
virtualenv --python=/usr/bin/python3 venvs/bottleproj
python3 -m venv venvs/bottleproj

激活虚拟环境。

source ~/venvs/bottleproj/bin/activate

正确激活 virtualenv 后,我们的提示会改变。

我们的 virtualenv 现在已使用 Python 3 激活。我们可以安装任何我们想要的依赖项,在我们的例子中是 Bottle 和 Gunicorn。

瓶子和独角兽

我们现在可以通过pip 命令安装 Bottle 和 Green Unicorn。

pip install bottle gunicorn

没有像我们在以下屏幕截图中看到的错误是一个好兆头。

使用mkdir 命令创建一个新目录来保存我们的 Bottle 项目,然后使用cd(更改目录)命令移动到新文件夹。

mkdir ~/bottleproj
cd ~/bottleproj

在我们的 app.py 目录中创建一个名为 bottleproj 的新文件,这样我们就可以进行测试以确保 Bottle 正常工作。我更喜欢使用 Vim,但 Emacs 和其他开发环境也能很好地工作。

在新的 app.py 文件中写入以下代码。

import bottle
from bottle import route, run, Response

# a basic URL route to test whether Bottle is responding properly
@route('/')
def index():
    return Response("It works!")

# these two lines are only used for python app.py
if __name__ == '__main__':
    run(host='0.0.0.0', port=8000, debug=True, reloader=True)

# this is the hook for Gunicorn to run Bottle
app = bottle.default_app()

我们可以使用python app.py 命令在 Bottle 开发服务器上运行我们的应用程序。让我们用 Gunicorn 运行我们的 Bottle 应用。

gunicorn -w 2 app:app

好的,我们可以在网络浏览器中的localhost:8000127.0.0.1:8000 地址打开我们的 shell Bottle 应用程序。

是时候用 Bottle 开发一个成熟的网络应用程序了!

准备开发

现在您已经有了一个简单的设置,可以在 Ubuntu 16.04 上使用 Gunicorn 作为 WSGI 服务器来开发 Bottle Web 应用程序。如果您需要完整的分步教程来将 Python Web 应用程序部署到生产环境,请查看《全栈 Python 部署指南》一书。

要决定下一步如何处理您的 Python 项目,请查看 Full Stack Python 目录页面。

看到这篇文章有什么问题了吗?在 GitHub 上创建此页面的源代码并提交拉取请求。

赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏