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

标签 python django

有什么简单的方法可以获取 Django 项目使用的 python 包列表?

我看过蛇食和this question , 但在 django 环境中似乎都不能很好地发挥作用。

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

最佳答案

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

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

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

#1 项目导入的模块

您可能可以使用 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 以发现它们的依赖关系。


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

关于python - 获取 Django 项目使用的 python 包列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8170914/

相关文章:

python - 剩余的连接槽保留用于非复制 super 用户连接

python - Django:选择具有最大时间戳的值或加入同一个表

python - 在 For 循环中获取属性名称

django - 我怎样才能在 Django 中拥有同一个模型的两个外键?

c# - 非常简单的网络服务 : take inputs, 电子邮件结果

javascript - Django - 从 {{STATIC_URL}} 转换为 {% static %}

python - 如何加快第一列分割文件的代码

python - pytest 添加选项以跳过 fixture 设置

python - 在 Python 中连接 CSV 文件中具有相同第一列值的所有行

python - 使用 '' 与 open、reader '' 函数