python项目结合pipenv创建requirements.txt实现快速安装依赖包 本文共有2171个字,关键词: python应用程序通常会引入一些公用库来快速进行开发。当项目部署到新的服务器时就会需要对这些依赖包进行一一安装。如果引入包只有少量手动一个个安装也费不了多少时间,但是如果依赖包比较多的情况下就很费时间。所以我们需要创建一个requirements.txt。这个文件列出所有引入的包和对应的版本。这个文件可以手动创建,也可以使用pip工具来创建,具体方法如下: ####1、pip freeze命令生成requirements.txt文件 >$ pip freeze > requirements.txt 此时生成的requirements.txt文件是包含当前环境下所有已安装的依赖包。可以对这个文件进行编辑只保留项目中使用的包即可。 如果只想要当前项目文件夹中所有使用的依赖包。可以使用pipreqs命令。 #####安装pipreq `pip install pipreqs` #####安装完之后 生成requirements.txt `pipreqs ./` >如果是Windows系统,报编码错误 (UnicodeDecodeError: 'gbk' codec can't decode byte 0xa8 in position 24: illegal multibyte sequence) 使用时,指定编码格式 pipreqs ./ --encoding=utf8 ####2、结合pipenv来生成requirements.txt pipenv是什么? pipenv 可以在一台主机上虚拟多个python多个环境,安装不同版本的包,虚拟与虚拟环境之间、虚拟环境与实际环境之间的包互不影响。类似于虚拟机。过去我们一般用virtualenv搭建虚拟环境,管理python版本,但是跨平台的使用不太一致,且有时候处理包之间的依赖总存在问题;过去也常常用 pip进行包的管理,pip已经足够好,但是仍然推荐pipenv,相当于virtualenv和pip的合体,且更加强大。pipenv开源之后,在GitHub上有很高人气。 #####使用pipenv 安装: `pip install pipenv` 创建虚拟环境:进入到项目文件夹执行 `pipenv install` 创建特定版本虚拟环境: ``` pipenv --python 3 pipenv --python 3.6 pipenv --python 2.7.14 ``` 初始化好虚拟环境后,会在项目目录下生成2个文件Pipfile和Pipfile.lock。为pipenv包的配置文件,代替原来的 requirements.txt。 安装新的依赖包 `pipenv install requests` 安装包之后会自动添加到lock文件中。项目迁移到新的环境中只需要执行: `pipenv install` 就会自动完成依赖包构建。 进入pipenv虚拟环境 `pipenv shell` 退出 `exit` 不进入虚拟环境shell 直接执行python项目。 `pipenv run python 项目1.py` 生成虚拟环境依赖包requirements.txt,用于项目发布。这样即使新的环境没有安装pipenv也可以直接安装依赖包。 方法1:`pipenv run pip freeze > requirements.txt` 方法2:`pipenv lock -r --dev > requirements.txt` 虚拟环境中导入requirements.txt `pipenv install -r requirements.txt` pipenv常用命令表: ``` pipenv --where 列出本地工程路径 pipenv --venv 列出虚拟环境路径 pipenv --py 列出虚拟环境的Python可执行文件 pipenv install 创建虚拟环境 pipenv isntall [moduel] 安装包 pipenv install [moduel] --dev 安装包到开发环境 pipenv uninstall[module] 卸载包 pipenv uninstall --all 卸载所有包 pipenv graph 查看包依赖 pipenv lock 生成lockfile pipenv run python [pyfile] 运行py文件 pipenv --rm 删除虚拟环境 ``` ####3、安装requirements.txt `pip install -r requirements.txt` × yihong (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 Python 2019-10-31 评论 11868 次浏览