1 virtualenv多环境管理
# 安装virtualenv
pip install virtualenv
# 虚拟环境目录
/var/.venv
# 创建虚拟环境
virtualenv test_venv
# 使用
/var/.venv/test_venv/Scripts/activate
# 退出
deactivate
2 pyenv
2.1 pyenv安装
macOS使用homebrew安装
- Mac下安装了homebrew之后使用homebrew安装pyenv。
brew update
brew install pyenv
brew upgrade pyenv #之后如果需要更新pyenv
- 在安装成功之后需要在.bashrc或者.bash_profile中添加三行来开启自动补全。
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
source .bash_profile
CentOS安装
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ exec $SHELL -l
Ubuntu安装
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ exec $SHELL -l
2.2 使用pyenv管理Python多版本
安装流程
2.3 安装异常处理
macOS
安装失败
macOS如果安装Python失败: `brew install zlib` and `brew install xz` and 重启
Linux
安装失败(如果pyenv install 3.6.6
时报BUILD FAILED
错误)
-- CentOS安装依赖库
yum install readline readline-devel readline-static -y
yum install openssl openssl-devel openssl-static -y
yum install sqlite-devel -y
yum install bzip2-devel bzip2-libs -y
-- Ubuntu安装依赖库:
sudo apt-get install libbz2-dev
sudo apt-get install libssl-dev
sudo apt-get install libreadline6 libreadline6-dev
sudo apt-get install libsqlite3-dev
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev
2.4 使用pyenv-virtualenv管理Python虚拟环境
$ git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
$ source ~/.bashrc
- 创建虚拟环境:
pyenv virtualenv 3.6.6 py3_flask
- 激活虚拟环境:
pyenv activate py3_flask
- 退出虚拟环境:
pyenv deactivate
- 删除虚拟环境:
pyenv uninstall py3_flask
2.5 Python卸载
macOS安装包安装的Python卸载方法
- 正如开篇所言,Mac 自带的 Python 已经能够满足我们的需要了,因此很多同学在安装完 Python 之后,又想要将其删除,或者称之为卸载。对于删除 Python,我们首先要知道其具体都安装了什么,实际上,在安装 Python 时,其自动生成:
- Python framework,即 Python 框架;
- Python 应用目录;
- 指向 Python 的连接。
- 对于 Mac 自带的 Python,其框架目录为:
System/Library/Frameworks/Python.framework
- 而我们安装的 Python,其(默认)框架目录为:
/Library/Frameworks/Python.framework
- 接下来,我们就分别(在 Mac 终端进行)删除上面所提到的三部分。
- 第 1 步,删除框架:
sudo rm -rf /Library/Frameworks/Python.framework/Versions/x.x
- 第 2步,删除应用目录:
sudo rm -rf "/Applications/Python x.x"
- 第 3 步,删除指向 Python 的连接:
cd /usr/local/bin/
ls -l /usr/local/bin | grep '../Library/Frameworks/Python.framework/Versions/x.x' | awk '{print $9}' | tr -d @ | xargs rm
3 cookiecutter
# 下载安装
pip install cookiecutter
cookiecutter https://github.com/mtooooo/cookiecutter-flask.git
# 安装依赖包
pip install -r myflaskapp\requirements\dev.txt
pip install -r myflaskapp\requirements\prod.txt
#启动方式一
if __name == '__main__':
app.run()
# 启动方式二
cd myflaskapp
flask run
# 启动后,访问http://127.0.0.1:5000
# 数据库皮配置README.rst文件
set FLASK_APP=/path/to/autoapp.py
set FLASK_DEBUG=1
flask db init
flask db migrate
flask db upgrade
flask run
#重启尝试注册服务
4 虚拟环境管理poetry
# 安装
pip install poetry
# 使用poetry进行包管理
poetry install
# 启动服务
poetry run flask run
# 打包wheel文件
poetry build
5 fabfile代码推送服务
from fabric import task
@task
def upload_and_unpack(c):
if c.run('test -f /opt/mydata/myfile', warn=True).failed:
c.put('myfiles.tgz', '/opt/mydata')
c.run('tar -C /opt/mydata -xzvf /opt/mydata/myfiles.tgz')
$ fab --list
Available tasks:
upload_and_unpack
$ fab -H web1 upload_and_unpack
- 多个主机,该主机多次运行任务,每次都
Connection
提交不同的实例:
$ fab -H web1,web2,web3 upload_and_unpack