Pythonpip模块部署——组件virtualenv和pipreqs
Posted 南瓜__pumpkin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pythonpip模块部署——组件virtualenv和pipreqs相关的知识,希望对你有一定的参考价值。
文章目录
pip使用说明
包管理软件pip | 说明 |
---|---|
本地版本 | 20.3.4 |
使用帮助 | pip -h |
基本语法 | pip <command> [options] |
Commands 参数
check命令,测试 pip check six
,返回 No broken requirements found
,个人理解就是用于查看代码库与其依赖是否兼容。
Commands | 说明 |
---|---|
install | 安装代码库 |
download | 下载,保存为 whl 格式 |
uninstall | 卸载 |
freeze | 以requirements格式输出已安装的代码库 |
list | 列出已安装代码库 |
show | 查看某已安装库的详细信息 |
check | 验证某已安装库是否具有兼容的依赖项 |
config | Manage local and global configuration. |
search | Search PyPI for packages. |
cache | Inspect and manage pip’s wheel cache. |
wheel | Build wheels from your requirements. |
hash | Compute hashes of package archives. |
completion | A helper command used for command completion. |
debug | Show information useful for debugging. |
help | Show help for commands. |
General Options
General Options | 说明 |
---|---|
–verbose | 冗长/更详细的信息,例如pip show urllib3 -v |
–requirements | 一次安装多个代码库 |
依赖部署
对Python项目进行依赖管理,常常使用 virtualenv 代码库部署一个虚拟独立的Python环境,与本地的Python环境隔离,从而避免代码库的混淆。
当前需求
拿到了一份PY文件,手动安装依赖比较慢,寻求一种自动化部署方案。
pip freeze
执行命令:pip freeze | cat
,发现结果与 pip list
的结果基本相同。这种方式配合virtualenv 才好使,否则把整个环境中的包都列出来了。
命令 | shell直接执行 pip freeze |
---|---|
作用 | 输出已安装代码库清单及其版本信息 |
注意 | 输出的是本地pip安装的代码库,而不是指定项目或py文件的 |
virtualenv代码库
管理项目依赖,依靠的基础是virtualenv------用来建立一个虚拟的python环境,一个专属于项目的python环境。在虚拟python环境中,使用 pip freeze
命令就可以打包项目依赖。
pip show virtualenv # 发现本地没有安装该代码库
pip install virtualenv #安装代码库
virtualenv 代码库是我们开发Python项目时需要注意的,但我们拿到的py文件并没有维护代码库清单,此时我们的需求是找出py文件的依赖。
pipreqs代码库
这里要介绍到一款组件:pipreqs,该组件可以自动 根据源码生成 requirements.txt。(这正是我所需要的功能)
安装到成功为Python项目生成 requirements.txt 的全过程:
pip install pipreqs # 安装
pipreqs # 命令行使用,发生报错 command not found
pip show -f pipreqs # 查看pipreqs的详细信息,-f表示文件。找到 pipreqs 的命令解释器位置
/Users/didi/Library/Python/2.7/bin ./ # 检查项目目录,生成相应的requirements.txt
pip install -r requirements.txt # 下载所需模块
我们的口号是:解放人力!!
报错 zsh: command not found: pipreqs
通过安装位置 Location: /Users/didi/Library/Python/2.7/lib/python/site-packages
和相对路径 ../../../bin/pipreqs
找到命令位置:/Users/didi/Library/Python/2.7/bin
报错 Max retries exceeded with url: /pypi/lib/json
报错信息:requests.exceptions.SSLError: HTTPSConnectionPool(host=‘pypi.python.org’, port=443): Max retries exceeded with url: /pypi/lib/json (Caused by SSLError(SSLEOFError(8, u’EOF occurred in violation of protocol (_ssl.c:727)’),))
解决办法:关闭科学上网。
参考
以上是关于Pythonpip模块部署——组件virtualenv和pipreqs的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Amazon AWS Elastic Beanstalk 部署私有 python pip 依赖项?
web前端[React库]:第三方组件库react-tiny-virtual-list
react 分页器 基于react-virtualized组件的分页器
Azure Virtual Desktop 实战部署之测试客户端访问