生成python依赖包文件

2023-09-25 19:32:29 浏览数 (1)

本文首先需要安装python环境,可以自行查阅文档,这里不再说明。

假如,我们有一个名为hello-flask的flask应用,该应用只依赖flask外部包。

有两种方式可以生成该应用的依赖包文件,分别介绍:

方式一

在hello-flask应用的根目录下,执行如下命令:

代码语言:shell复制
pip freeze > requirements.txt

则会自动生成requirements.txt文件,内容如下:

代码语言:text复制
alabaster @ file:///home/ktietz/src/ci/alabaster_1611921544520/work

anaconda-client==1.2.2

anaconda-navigator==2.0.3

anaconda-project @ file:///tmp/build/80754af9/anaconda-project_1621348054992/work

anyio @ file:///C:/ci/anyio_1620153418380/work/dist

appdirs==1.4.4

argh==0.26.2

argon2-cffi @ file:///C:/ci/argon2-cffi_1613037959010/work

asgiref==3.7.2

asn1crypto @ file:///tmp/build/80754af9/asn1crypto_1596577642040/work

astroid @ file:///C:/ci/astroid_1613501047216/work

astropy @ file:///C:/ci/astropy_1617745647203/work

async-generator @ file:///home/ktietz/src/ci/async_generator_1611927993394/work

atomicwrites==1.4.0

attrs @ file:///tmp/build/80754af9/attrs_1620827162558/work

.

.

.

太多了,省略一万行

.

.

.

wcwidth @ file:///tmp/build/80754af9/wcwidth_1593447189090/work

webencodings==0.5.1

Werkzeug==2.3.7

widgetsnbextension==3.5.1

win-inet-pton @ file:///C:/ci/win_inet_pton_1605306167264/work

win-unicode-console==0.5

wincertstore==0.2

wrapt==1.12.1

xlrd @ file:///tmp/build/80754af9/xlrd_1608072521494/work

XlsxWriter @ file:///tmp/build/80754af9/xlsxwriter_1617224712951/work

xlwings==0.23.0

xlwt==1.3.0

xmltodict==0.12.0

yapf @ file:///tmp/build/80754af9/yapf_1615749224965/work

zict==2.0.0

zipp==3.16.2

zope.event==4.5.0

zope.interface @ file:///C:/ci/zope.interface_1616357322857/work

卧槽,应用只依赖了flask外部包,竟然生成了这么多依赖,明显有问题吧?通过安装验证,确实有问题,而且根本安装不成功,不要再使用这种方式生成包依赖了。

下面看第二种。

方式二
安装工具
代码语言:shell复制
pip install pip-tools
创建文件

在应用根目录下创建requirements.in文件,内容如下:

代码语言:text复制
flask==2.3.1
生成依赖包文件

在应用根目录下执行:

代码语言:shell复制
pip-compile requirements.in

则requirements.txt文件内容如下:

代码语言:text复制
#

# This file is autogenerated by pip-compile with Python 3.8

# by the following command:

#

#    pip-compile requirements.in

#

blinker==1.6.2

    # via flask

click==8.1.7

    # via flask

colorama==0.4.6

    # via click

flask==2.3.1

    # via -r requirements.in

importlib-metadata==6.8.0

    # via flask

itsdangerous==2.1.2

    # via flask

jinja2==3.1.2

    # via flask

markupsafe==2.1.3

    # via

    #   jinja2

    #   werkzeug

werkzeug==2.3.7

    # via flask

zipp==3.16.2

    # via importlib-metadata

文件内容很少,而且还有依赖关系,非常清晰。

安装

在应用的根目录下,执行:

代码语言:shell复制
pip install -r requirements.txt

命令执行完以后,接着就可以运行该应用了。

最后,推荐一个部署应用的平台: https://github.com/512team/dhorse

演示地址:http://dhorse-demo2.512.team

0 人点赞