requirements.txt用来记录项目所有的依赖包和版本号,只需要一个简单的pip命令就能完成。
pip freeze >requirements.txt
然后就可以用
pip install -r requirements.txt
来一次性安装requirements.txt里面所有的依赖包,真是非常方便。
但是我最近发现了一个全新的Python包管理器,叫做pipenv
,集合了所有编程语言的包管理器的优点,是kennethreitz
大神的一个周末项目。它的工作方式就像Node.js里的npm或者yarn,很容易就解决Python2/3
混合使用产生的版本问题。
首先用pip install pipenv
来安装它,然后在你的项目的根目录下面运行pipenv --three
来生成Python3的虚拟环境,或者pipenv --two
生成Python2环境。
这样pipenv
会在这个项目里创建一个pipfile
的文件,就像package.json
一样,里面记录了项目所有的依赖包版本信息。
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages]
[dev-packages]
[requires]
python_version = "3.6"
要运行pipenv shell
进入虚拟环境,可以输入exit
退出。pipenv install
可以一键安装所有依赖包,还会生成pipfile.lock
文件,里面记录了这次安装时的依赖包。
在pipenv install
后面加上包名称,比如pipenv install flask
可以安装Flask到生产环境,再加参数,比如pipenv install flask --dev
就会安装到开发环境。
类似地,把上面的install
改成uninstall
就会卸载依赖包,pipenv uninstall --all
可以卸载项目下所有的包。就是这么用的,更多的命令请查看pipenv官网。