WordPress网站建设宣传图片

Python如何只导出当前Python文件所需模块包依赖

释放双眼,带上耳机,听听看~!

Python如何只导出当前Python文件所需模块包依赖?

之前在Python虚拟环境使用文章我分享过使用pip freeze导出当前虚拟环境的模块,但是有时候我们写的脚本只需要导出单个文件或者项目目录不是整个虚拟环境的时候,就不行了;

如果只需要导出当前Python文件所需模块包依赖我们可以使用pipreqs模块,下面是pipreqs的使用方法和经验分享:

安装pipreqs库

pip install pipreqs

使用豆瓣源进行安装(PS:理论上来说 使用国内源会更快安装,但是我使用豆瓣源安装pipreqs的时候却两次都卡主,不是报错,而是卡主,原因未知,所以具体自己看情况,如果卡主可以直接安装,而不使用豆瓣源)

pip install pipreqs -i https://pypi.douban.com/simple

GitHub地址:https://github.com/bndr/pipreqs

本人实测(系统win11 安装后请重启下 不然好像无法导出(提取到的依赖模块为空))

导出当前Python脚本文件依赖

pipreqs --print /path/to/your/python/file.py
# 把/path/to/your/python/file.py替换为你的Python文件路径

上述命令将打印你输入Python文件的项目依赖模块,如果需要保存为requirements.txt的文件,则使用下面命令:

pipreqs --print /path/to/your/python/file.py > requirements.txt
# 把/path/to/your/python/file.py替换为你的Python文件路径

成功后将提示:INFO: Successfully output requirements

导出一个目录的依赖

安装完成后,进入你所需要导出的Python文件依赖所在的目录,并执行以下命令:

pipreqs .

这命令会直接在当前目录生成一个名为requirements.txt的文件,其中包含了当前Python文件所需的所有模块及其版本信息。

执行上面命令,pipreqs库会分析整个目录中的Python文件,并生成包含所有文件所需模块的requirements.txt文件。如果你想用这个方法导出当前文件所需的模块,也可以将文件移动到一个单独的目录中,然后在该目录中执行上述命令。

可能遇见的错误解决

UnicodeDecodeError

如果提示:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xab in position 58: illegal multibyte sequence。可以在导出的命令上加入 –encoding指定文件编码,例如:

pipreqs . --encoding=utf-8

命令不识别 – 无法将“pipreqs”项识别为…

这个错误我并没遇见,但是找资料的时候顺带看见了别人的笔记,就一起整理分享了,设置步骤更加清晰,对小白更友好。

错误提示代码:

PS D:\python\*****> pipreqs ./
pipreqs : 无法将“pipreqs”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路
径正确,然后再试一次。
所在位置 行:1 字符: 1
+ pipreqs ./
+ ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (pipreqs:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

问题原因:

pipreqs没有纳入环境变量

解决办法:

通过”pip3 show -f pipreqs”,找到python的Scripts目录(你也可以通过其他方法找到Scripts目录,可以尝试问chatgpt或许可以得到更简单的办法):

PS D:\python\****> pip3 show -f pipreqs
Name: pipreqs
Version: 0.4.10
Summary: Pip requirements.txt generator based on imports in project
Home-page: https://github.com/bndr/pipreqs
Author: Vadim Kravcenko
Author-email: vadim.kravcenko@gmail.com
License: Apache License
Location: c:\users\###\appdata\roaming\python\python39\site-packages
Requires: yarg, docopt
Required-by:
Files:
  ..\Scripts\pipreqs.exe
  pipreqs-0.4.10.dist-info\AUTHORS.rst
  pipreqs-0.4.10.dist-info\INSTALLER
  pipreqs-0.4.10.dist-info\LICENSE
  pipreqs-0.4.10.dist-info\METADATA
  pipreqs-0.4.10.dist-info\RECORD
  pipreqs-0.4.10.dist-info\REQUESTED
  pipreqs-0.4.10.dist-info\WHEEL
  pipreqs-0.4.10.dist-info\entry_points.txt
  pipreqs-0.4.10.dist-info\top_level.txt
  pipreqs\__init__.py
  pipreqs\__pycache__\__init__.cpython-39.pyc
  pipreqs\__pycache__\pipreqs.cpython-39.pyc
  pipreqs\mapping
  pipreqs\pipreqs.py
  pipreqs\stdlib

通过 Location: c:\users****\appdata\roaming\python\python39\site-packages, ..\Scripts\pipreqs.exe,这两条得出Scripts目录路径为:c:\users\###\appdata\roaming\python\python39\Scripts,把这个路径写入系统变量=》Path条目中,

设置变量路径流程:此电脑》右键》属性》高级系统设置》环境变量》系统变量》Path》编辑》新建》加入得到的Scripts路径。可以解决命令不识别问题。

Windows》电脑属性
Windows环境变量设置

给TA打赏
共{{data.count}}人
人已打赏
Python笔记

Python实现将字符串复制到粘贴板

2023-8-16 0:19:33

Python内置模块Python爬虫Python笔记

Python拼接URL:urllib.parse urljoin使用

2023-9-15 14:48:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
展开目录