use*_*788 21 python linux pyinstaller strace
我有一个python GUI应用程序.现在我需要知道应用程序链接到的所有库.这样我就可以检查所有库的许可证兼容性.
我已经尝试过使用strace,但是strace似乎报告了所有的包,即使它们没有被应用程序使用.
而且,我尝试了python ModuleFinder,但它只返回python2.7中的模块而不是链接的系统级包.
那么有什么方法可以获得从我的应用程序链接的所有库?
SeF*_*SeF 44
你可以给一个尝试到图书馆 https://github.com/bndr/pipreqs 发现引导下 https://www.fullstackpython.com/application-dependencies.html
库pipreqs是pip可安装的,并自动生成文件requirements.txt.它包含所有导入库,其中包含您在virtualenv或正确安装的python中使用的版本.
只需输入:
pip install pipreqs
pipreqs /home/project/location
Run Code Online (Sandbox Code Playgroud)
它将打印:
INFO: Successfully saved requirements file in /home/project/location/requirements.txt
Run Code Online (Sandbox Code Playgroud)
另外它与pip install -r命令兼容:如果你需要创建项目的venv,或者用兼容的库更新你当前的python版本,你只需要输入:
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
我有同样的问题,这个库为我解决了它.不确定它是否适用于多层依赖项,即如果您具有嵌套级别的依赖库.
- 编辑 - 更新:
如果要寻找更复杂的版本管理器,请考虑pyvenv https://github.com/pyenv/pyenv.它在同一工具中融合virtualenv,pipreqs并对版本规范进行了一些改进pipreqs.
使用以下命令为 python2 安装 yolk:
pip install yolk
Run Code Online (Sandbox Code Playgroud)
或者为 python3 安装 yolk:
pip install yolk3k
Run Code Online (Sandbox Code Playgroud)
调用以下命令来获取您环境中的鸡蛋列表:
yolk -l
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用Snakefood来绘制依赖关系图,如本问题中的回答。
您可以尝试进入存储解压鸡蛋的 site-packages 文件夹,然后运行以下命令:
ls -l */LICENSE*
Run Code Online (Sandbox Code Playgroud)
这将为您提供每个项目的许可证文件列表(如果它们存储在 Egg 的根目录中,通常是这样)。
| 归档时间: |
|
| 查看次数: |
13018 次 |
| 最近记录: |