• requirements.txt用法你真的清楚吗


    很多Python开源项目在环境搭建教程中都会提供requirements.txt,所以有必要搞清楚这到底有什么作用以及一些细节须知

    插播,更多文字总结·指南·实用工具·科技前沿动态第一时间更新在公粽号【啥都会一点的研究生

    1)如何安装requirements.txt中的所有内容

    requirements.txt中包含项目所需依赖的所有库,如:

    library-one==1.0.1
    library-two==3.1.4
    library-three==100.1.0
    
    • 1
    • 2
    • 3

    要一键安装txt中所指定的3个库,我们可以运行以下命令:

    pip install -r requirements.txt
    
    • 1

    这将自动安装 requirements.txt 中指定的每行库及相应版本

    2)如何生成requirements.txt

    假设现在其他人需要运行自己的代码,那么需要确保两者运行环境一致,首先在项目Python环境的终端中运行如下命令

    pip freeze
    
    • 1

    该命令将在终端中打印出每个安装的每个第三方库以及相应版本,如

    absl-py==1.4.0
    altair==5.0.1
    anyio==3.6.2
    appdirs==1.4.4
    appnope==0.1.3
    argon2-cffi==21.3.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    是不是感觉这就是requirements.txt文件中的内容

    现在希望将这些内容写入文本文件中,但又不想手动复制粘贴它,可以使用以下命令将其写入

    pip freeze > requirements.txt
    
    • 1

    该语句的作用是将pip freeze输出的所有内容写入名为requirements.txt的文本文件中

    这样,requirements.txt文件制作完毕,接下来是一些须知

    3)最好使用虚拟环境创建requirements.txt

    当我们使用pip freeze时,每个安装的库都会出现在你的requirements.txt

    这可能会很输出肥肠多的内容,如果项目只需要几个主要库,但requirements.txt会安装另外100个不必要的库,该怎么办?

    使用 Python 虚拟环境!

    python -m venv env    # create a virtual environment called 'env'
    
    • 1
    # activating our Python virtual environment
    
    env\Scripts\activate.bat    # Windows
    
    source env\bin\activate     # MacOS/Linux
    
    • 1
    • 2
    • 3
    • 4
    • 5

    创建新的虚拟环境后,干净又卫生,没有安装任何内容。因此,安装项目所需的主要库后使用pip freeze,最终出现在requirements.txt中的内容将仅包含这些主要内容

    4)省略requirements.txt中的版本会如何

    这是一个规范的 requirements.txt

    numpy==1.23.5
    pandas==1.5.2
    
    • 1
    • 2

    将安装具有特定版本的numpypandas

    如下是一个没有版本的requirements.txt

    numpy
    pandas
    
    • 1
    • 2

    将安装最新版本的numpypandas,如果项目中的某些库是没有版本依赖的可以这样做

    5)不一定要命名为requirements.txt

    pip install -r requirements.txt
    
    • 1
    • -r表示read
    • requirements.txt只是一个不符合惯例命名的任意文本文件

    实际上,可以将其命名为任何名称,只要它是有效的文本文件名即可,如

    pip install -r a.txt
    
    • 1

    但不建议这样做

    6)requirements.txt可以包含其他requirements.txt文件

    假设我们有2个requirements.txt文件

    requirements.txt
    requirements_windows.txt
    
    • 1
    • 2
    • requirements.txt包含主要内容
    • requirements_windows.txt包含专门的Windows库

    我们希望requirements_windows.txt也包含requirements.txt内的内容,可以在requirements_windows.txt中这样写

    library-one
    library-two
    -r requirements.txt
    
    • 1
    • 2
    • 3
    • 首先library-onelibrary-two将被安装
    • 最后requirements.txt中的所有内容也将被安装

    以上就是本期的全部内容,希望对你有帮助,不要吝啬你的点赞在看哦,我是啥都生,下次再见

  • 相关阅读:
    NFT 推荐|Funguys 王国作品集第一弹
    【无标题】数字ic设计|ic芯片设计全流程
    Java 中的线程池
    gpt扣款失败,openai扣款失败无法使用-如何解决gpt扣款失败的问题?
    1005 继续 (3 n+1) 猜想【PAT (Basic Level) Practice (中文)】
    不小心删除了docker/overlay2怎么办?
    yarn : 无法加载文件 C:\Users\sunlight\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁止运行脚本。
    CentOS安装mysql8
    【快应用】快应用审核驳回常见原因总结
    1458_树莓派安装使用aria2
  • 原文地址:https://blog.csdn.net/zzh516451964zzh/article/details/132512878