python - 如何列出python3中脚本使用的所有python包
问题描述
我已经阅读了其中一些问题,但它们似乎都链接到专门用于 python 2.x 的方法,而我正在使用 python 3.x。
我有一个 python 文件,称之为 test.py,它有许多包导入(例如 import numpy as np),但它也导入了一些其他文件,我们称之为 subTest1.py 和 subTest2.py。每个 subTest 文件都有自己的导入(可能包括其他文件和包)。是否有一种自动化的方式来获取运行路由脚本(test.py)所需的所有包的列表?
我知道 pip freeze 会显示我安装的每个包,但这不是我要寻找的 - 可能安装了一个不需要运行 test.py 脚本的包。
类似但 python 2.x 的问题:
似乎特定于 python 2.x 的软件包:
蛇食
pipreq
pipreqs 失败的地方:
Traceback (most recent call last):
File "c:\anaconda36\envs\tensorflow\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\anaconda36\envs\tensorflow\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Anaconda36\envs\tensorflow\Scripts\pipreqs.exe\__main__.py", line 9, in <module>
File "c:\anaconda36\envs\tensorflow\lib\site-packages\pipreqs\pipreqs.py", line 396, in main
init(args)
File "c:\anaconda36\envs\tensorflow\lib\site-packages\pipreqs\pipreqs.py", line 341, in init
extra_ignore_dirs=extra_ignore_dirs)
File "c:\anaconda36\envs\tensorflow\lib\site-packages\pipreqs\pipreqs.py", line 91, in get_all_imports
raise exc
File "c:\anaconda36\envs\tensorflow\lib\site-packages\pipreqs\pipreqs.py", line 77, in get_all_imports
tree = ast.parse(contents)
File "c:\anaconda36\envs\tensorflow\lib\ast.py", line 35, in parse
return compile(source, filename, mode, PyCF_ONLY_AST)
File "<unknown>", line 49
print vsize
^
SyntaxError: Missing parentheses in call to 'print'
解决方案
你可以使用pipreqs
包。(文档)
安装:
pip3 install pipreqs
用法:
pipreqs ./your_script_directory
它会requirements.txt
在您的脚本目录中生成一个文件,其中包含所有使用的依赖项。
推荐阅读
- github-api - 如何使用 GitHub API 获取问题分配给用户的日期?
- r - ValueError: Unknown config_item:L1L2 for load_model_hdf5 function from Keras package in R
- android - 围绕 Material Button 移动的动画边框,如圆形进度指示器
- python - python中两个名字指向同一个对象
- android - android和标准的hprof文件有什么区别?
- c++ - Portaudio 输入缓冲区始终为空
- node.js - 在 firestore 调用期间无法使用 firebase-admin 模拟用户
- c# - 将 Firebase Admin SDK 添加到 Unity 项目
- postgresql - 在多个电子邮件字段中查找重复项
- c# - 确定基类中的泛型类型