使用 pipenv 和 autoenv 构造 Python Project 开发环境

2,745 阅读1分钟
原文链接: sanyuesha.com

安装 autoenv

autoenv 可以在进入项目之后自动就检测项目目录的 .env 文件激活项目所需的环境,这样能够保证每次切换项目都能自动进入项目自身依赖的虚拟环境。

brew install autoenv
echo "source $(brew --prefix autoenv)/activate.sh" >> ~/.bash_profile

安装 pipenv

确保系统上已经有了 Python 和 pip :

$ python --version                                                           Python 2.7.12
$ pip --version
pip 9.0.1 from /Library/Python/2.7/site-packages (python 2.7)

安装 pipenv :

$ pip install --user pipenv

--user 选项将 pipenv 安装在系统的用户目录,避免使用 sudo 权限以及破坏系统原有的依赖,在 Linux 和 macOS 中可以使用 python -m site --user-base 查看 pip 用户目录在什么地方。

$ python -m site --user-base
/Users/zhaoyongqiang/Library/Python/2.7

一般情况 Python 的用户 bin 目录并没有加入的 shell bin 中,找到该目录并加入到用户 path 中

export PATH=$PATH:/Users/zhaoyongqiang/Library/Python/2.7/bin

使用 pipenv 创建虚拟环境

pipenv 结合了 virtualenv 和 pip,借助 pipenv 可以一键创建 virtualenv 环境,也就是说每个项目都可以拥有自己单独的虚拟环境和依赖安装了。

$ cd myproject
$ pipenv shell
source /Users/zhaoyongqiang/.local/share/virtualenvs/myproject-TJNsri2_/bin/activate

pipenv shell 会创建一个 virenv 环境并激活,将虚拟环境的激活路径加入 .env 文件,下次进入目录会自动激活项目环境。

echo "source /Users/zhaoyongqiang/.local/share/virtualenvs/myproject-TJNsri2_/bin/">>.env

安装依赖包


$ cd myproject
$ pipenv install

如果项目中已经有了 requirements.txt pipenv 会自动进行转换生成 Pipfile 文件,该文件是 pipenv 用来跟踪依赖包信息的文件。

如果出现:

Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.

说明在安装过程中有错误,可以按照提示进行操作:

pipenv install --skip-lock