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验证某已安装库是否具有兼容的依赖项
configManage local and global configuration.
searchSearch PyPI for packages.
cacheInspect and manage pip’s wheel cache.
wheelBuild wheels from your requirements.
hashCompute hashes of package archives.
completionA helper command used for command completion.
debugShow information useful for debugging.
helpShow 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)’),))

解决办法:关闭科学上网。

参考

python三大神器之virtualenv

浅谈pipreqs组件(自动生成需要导入的模块信息)

pipreqs使用笔记

以上是关于Pythonpip模块部署——组件virtualenv和pipreqs的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Amazon AWS Elastic Beanstalk 部署私有 python pip 依赖项?

web前端[React库]:第三方组件库react-tiny-virtual-list

react 分页器 基于react-virtualized组件的分页器

Azure Virtual Desktop 实战部署之测试客户端访问

拖动滚动条时 Blazor Virtualize 组件和滚动中断

Jupyter没有从Virtual Environment加载模块