0%

Flask开发环境搭建

PyPI(https://pypi.org )是一个Python包的在线仓库,截至2018年5月,
共有13万多个包存储在这里。后面我们会学习如何编写自己的Flask扩展,并把它
上传到PyPI上。到时你就可以使用上面这条命令安装自己编写的包。
现在使用pip安装Pipenv:
$ pip install pipenv
在Linux或macOS系统中使用sudo以全局安装:
$ sudo pip install pipenv
附注
如果你不想全局安装,可以添加–user选项执行用户安装(即pip install–
user pipenv),并手动将用户基础二进制目录添加到PATH环境变量中,具体可参
https://docs.pipenv.org/install/#installing-pipenv
提示
PyPI中的包名称不区分大小写。出于方便的考虑,后面的安装命令都将使用小
写名称。
可以使用下面的命令检查Pipenv是否已经安装:
$ pipenv --version
pipenv, version 11.10.4
2.创建虚拟环境
在Python中,虚拟环境(virtual enviroment)就是隔离的Python解释器环
境。通过创建虚拟环境,你可以拥有一个独立的Python解释器环境。这样做的好处
是可以为每一个项目创建独立的Python解释器环境,因为不同的项目常常会依赖不
同版本的库或Python版本。使用虚拟环境可以保持全局Python解释器环境的干净,
避免包和版本的混乱,并且可以方便地区分和记录每个项目的依赖,以便在新环境
下复现依赖环境。
虚拟环境通常使用Virtualenv来创建,但是为了更方便地管理虚拟环境和依赖
包,我们将会使用集成了Virtualenv的Pipenv。首先确保我们当前工作目录在示例
程序项目的根目录,即helloflask文件夹中,然后使用pipenv install命令为当
前的项目创建虚拟环境:
$ pipenv install
Creating a virtualenv for this project…
...
Virtualenv location: /path/to/virtualenv/helloflask-5Pa0ZfZw
...
这会为当前项目创建一个文件夹,其中包含隔离的Python解释器环境,并且安
装pip、wheel、setuptools等基本的包。因为示例程序仓库里包含Pipfile文件,
所以这个文件中列出的依赖包也会一并被安装,下面会具体介绍。
附注
默认情况下,Pipenv会统一管理所有虚拟环境。在Windows系统中,虚拟环境
文件夹会在C:\Users\Administrator.virtualenvs\目录下创建,而Linux或
macOS会在~/.local/share/virtualenvs/目录下创建。如果你想在项目目录内创
建虚拟环境文件夹,可以设置环境变量PIPENV_VENV_IN_PROJECT,这时名
为.venv的虚拟环境文件夹将在项目根目录被创建。
虚拟环境文件夹的目录名称的形式为“当前项目目录名+一串随机字符”,比如
helloflask-5Pa0ZfZw。
提示
你可以通过–three和–two选项来声明虚拟环境中使用的Python版本(分别
对应Python3和Python2),或是使用–python选项指定具体的版本号。同时要确
保对应版本的Python已经安装在电脑中。
在单独使用Virtualenv时,我们通常会显式地激活虚拟环境。在Pipenv中,可
以使用pipenv shell命令显式地激活虚拟环境:
$ pipenv shell
Loading .env environment variables…
Launching subshell in virtual environment. Type 'exit' to return.

1
2
3
4
5
6
7
8
9
10
11
环境变量加载
pipenv install python-dotenv
.flaskenv
.evn
SOME_VAR=1
# 这是注释
FOO="BAR"
FLASK_APP=app.py
FLASK_ENV=development
FLASK_RUN_PORT=80
FLASK_RUN_HOST=127.0.0.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
自动重启服务器
默认会使用Werkzeug内置的stat重载器,它的缺点是耗电较严重,而且准确性
一般。为了获得更优秀的体验,我们可以安装另一个用于监测文件变动的Python库
Watchdog,安装后Werkzeug会自动使用它来监测文件变动:
$ pipenv install watchdog --dev
因为这个包只在开发时才会用到,所以我们在安装命令后添加了一个--dev选
项,这用来把这个包声明为开发依赖。在Pipfile文件中,这个包会被添加到dev-
packages部分。
不过,如果项目中使用了单独的CSS或JavaScript文件时,那么浏览器可能会
缓存这些文件,从而导致对文件做出的修改不能立刻生效。在浏览器中,我们可以
按下Crtl+F5或Shift+F5执行硬重载(hard reload),即忽略缓存并重载(刷
新)页面。
提示
当在一个新电脑创建运行环境时,使用pipenv install命令时需要添加额外
的--dev选项才会安装dev-packages部分定义的开发依赖包
iBoy wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!