获取 Django 项目使用的 python 包列表

2024-03-23

有没有简单的方法来获取 Django 项目使用的 python 包列表?

我看过蛇食和这个问题 https://stackoverflow.com/questions/5219711/list-python-packages-consumed-by-an-application,但在 django 环境中似乎都不能很好地发挥作用。

理想情况下,我正在寻找一个可以从 python shell 或 bash 执行的命令,以列出所有非 django 原生的 pypy 支持的依赖项。


这不是一个完整的答案,但希望它能成为一个合理的起点。

据我所知,django 项目的依赖项(除了 django 本身及其依赖项*) 由组成:

  1. django 项目导入的模块
  2. 您的项目通过以下方式加载应用程序settings.INSTALLED_APPS(及其依赖项)

#1 您的项目导入的模块

您可能会发现这一点使用蛇食 http://furius.ca/snakefood/.

#2 应用程序加载方式settings.INSTALLED_APPS

运行以下脚本应给出中列出的应用程序的路径INSTALLED_APPS:

#!/usr/bin/env python
from settings import INSTALLED_APPS
from django.utils.importlib import import_module
import os

app_names = (x for x in INSTALLED_APPS if not x.startswith('django'))
app_paths = (os.path.dirname(os.path.abspath(import_module(x).__file__)) for x in app_names)    
print "\n".join(x for x in app_paths if not x.startswith(os.getcwd()))

然后您可以将其传递给snakefood发现他们的依赖关系。


*为了彻底,应该可以从以下位置发现各种后端(db/cache/auth/等)settings并将关联的模块包含到您的依赖项列表中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取 Django 项目使用的 python 包列表 的相关文章

随机推荐