Python酷玩之旅_如何正确使用pipreqs完成依赖导出(解决UnicodeDecodeError)

导览

  • 前言
  • Q:如何正确使用pipreqs
  • 1. 安装库
  • 2. 命令详解
  • 2.1 options
  • 2.2 path
  • 3. 实践与问题
  • 结语
  • 系列回顾
  • 前言

    使用python开发的应用在迁移部署的时候,你一定会使用pipreqs(当然也有其他选择)吧?这是一款强大的依赖管理工具。其运行流程如下示意:

    它是PyPI中的重要成员。

    Q:如何正确使用pipreqs

    pipreqs是一个用于管理项目依赖库的工具,是python中常用的模块,目前最新版是0.5.0。

    1. 安装库

    很简单,按官网指导,只需要执行:

    # 安装pipreqs
    pip install pipreqs
    

    如果你是python3,请调整为:

    # 安装pipreqs
    pip3 install pipreqs
    

    执行完成后,可通过pycharm查看Packages:

    如看到此图,代表已安装成功。

    2. 命令详解

    安装完成后,如何使用它呢?且听博主分解。

    命令格式:pipreqs [options] [<path>]

    2.1 options

    选项 作用
    –use-local 仅使用本地包
    –pypi-server 使用PyPi Server
    –proxy 使用代理
    –debug 打印debug信息
    –ignore 忽略的目录
    –no-follow-links 不按照项目中的链接
    –encoding 文件编码
    –savepath 指定requirements.txt路径
    –print 打印标准输出
    –force 强制覆盖上一个requirements.txt文件
    –diff 比较requirements.txt文件和项目中的import内容
    –clean 清理项目中未导入的import内容
    –mode 启用动态版本控制
    –scan-notebooks 在jupyter文件中查找导入

    2.2 path

    path是一个参数,用于指定应用的工作目录,也就是requirements.txt生成的目录。如未指定,默认是当前项目的根目录。

    3. 实践与问题

    通过上述介绍,我们可以立即进行实践操作了。
    找一个python project,在pycharm中的terminal窗口,立即执行如下命令:

     pipreqs .  --encoding=utf8 --force
    

    正常情况下,你会在当前项目的根目录(指定"."),找到一个requirements.txt文件。但是很可惜,你可能会遇到如下状况:

    翻译一下,大致就是你的文件中存在非utf-8支持的字符,所以运行失败。当然你能找到这个文件那就大好特好了,但是事实上你很难办,所以博主这里推荐另外一种办法。

    如何解决此类问题呢?
    你可以在上述命令中,添加一个--ignore ,完整的命令如下:

     pipreqs . --ignore .venv  --encoding=utf8 --force
    

    忽略本地的.venv目录,运行后,你可以看到成功的消息。

    导出的requirements.txt文件内容大致如下:

    mysql_connector_repackaged==0.3.1
    sentence_transformers==3.1.0
    streamlit==1.38.0
    torch==2.4.1
    torch_xla==2.4.0
    tqdm==4.66.5
    transformers==4.44.2
    

    结语

    这是一篇旨在说明如何正确的使用pipreqs管理你的python project依赖的专业技术文章,通过安装和使用过程,详细说明它的作用。并且可以指导你在实际应用过程中遇到典型问题时的解决方案和思路。

    感谢各位盆友的支持~

    系列回顾

    Python酷玩之旅_如何在Centos8顺利安装Python最新版(3.12)
    Python酷玩之旅_如何连接MySQL(mysql-connector-python)


    作者:一叶飞舟

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python酷玩之旅_如何正确使用pipreqs完成依赖导出(解决UnicodeDecodeError)

    发表回复