获取Django Proj使用的python包的列表

2024-04-20 01:12:57 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我看过蛇食和this question,但在django环境中似乎都不太好。

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


Tags: 项目django方法命令bash列表环境情况
3条回答

如果项目使用“pip”安装依赖项/库,这可能很有用:

pip freeze

pigar对我很好。

它不包括已安装的应用程序yet,但这只是一点额外的工作。

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

据我所知,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),并将相关模块包含到依赖项列表中。

相关问题 更多 >