Python 虚拟环境配置

总结一些使用 Python 开发过程过程中的环境配置,常用操作,常见错误处理等等。

虚拟环境搭建(virtualenv)

Python 开发过程中,经常需要安装各种依赖库,Python 的第三方包成千上万,在一个 Python 环境下开发时间越久、安装依赖越多,就越容易出现依赖包冲突的问题。为了解决这个问题,开发者们开发出了 virtualenv,可以搭建虚拟且独立的 Python 环境。 virtualenv 为每个项目提供了隔离的 Python 运行环境,解决了不同项目间多版本的冲突问题。而且,依赖包不安装在系统环境下,也保持了系统环境的干净。

首先确认是否安装 Python,通过执行python -V python3 -V查看当前 python 版本。如果没有安装,Mac 可通过brew install python3来安装。

# 安装 python3
brew install python3
# 查看 python2 和 python3 版本
python -V
python3 -V
# 查看 python2 和 python3 安装位置
which python
which python3

Python3 对 virtualenv 原生支持,不用安装任何依赖即可搭建虚拟环境。通过命令python3 -m venv 虚拟环境名称例如venv即可创建虚拟环境,-m venv选项是一独立的脚本运行标准库的 venv 包。如果是 Ubuntu Linux 系统预装 Python 3,则需要安装 python3-venv 包。

# 创建名称为 venv 的虚拟环境
python3 -m venv venv
# 激活虚拟环境
source venv/bin/activate

Python 2 安装 virtualenv 则需要安装依赖包 virtualenv。

# 安装 virtualenv
pip install virtualenv
# 初始化 virtualenv 环境 
virtualenv venv
# 激活虚拟环境
source venv/bin/activate

其他命令,deactivate 退出虚拟环境,如果安装有多个 python 库,可指定版本virtualenv -p /usr/bin/python venv,将/usr/bin/python更换为需要指定的 python 库即可。

依赖

安装依赖库,使用pip install十分方便,例如需要安装 numpy 库和 matplotlib 库,执行:

pip install numpy
pip install matplotlib

如果需要从测试环境切换到生产环境,如何导出 python 项目的全部依赖。使用pip freeze生成一个依赖记录文件 requirements.txt,名称随意,用于记录所有依赖包及其精确的版本号。以便新环境部署。

# 生成一个名称为 requirements.txt 依赖包记录文件
(venv) $ pip freeze>requirements.txt

那到一个新环境,如何一次安装项目需要的全部依赖,这时依赖记录文件 requirements.txt 就排上了用场。使用pip install -r 依赖文件名称命令即可一次安装全部所需依赖。

(venv) $ pip install -r requirements.txt

其他

查看 Python 文档,执行命令python -m pydoc -p xxxx(任意闲置端口号)即可。

修改环境变量,或将一些值保存到环境变量,临时更改可通过 export 命令更改,重启后失效。

# 将变量增加至环境变量
export MAIL_USERNAME='lifei_zdjl@126.com'
export MAIL_PASSWORD='lifei888888888888'
# 使新环境变量生效
source /etc/profile
# 检查环境变量是否生效
echo $MAIL_USERNAME
echo $MAIL_PASSWORD

若想永久添加,则需要修改系统环境变量配置文件 profile文件 或 .bash_profile文件。配置文件作用域:

  1. /etc/profile 为全局共有配置文件,所有用户共享。
  2. ~/.bash_profile 为用户级配置文件,对当前用户有效。