簡體   English   中英

獲取 Django 項目使用的 Python 包列表

[英]Get a list of python packages used by a Django Project

有沒有什么簡單的方法可以獲取 Django 項目使用的 python 包列表?

我看過蛇食和這個問題,但在 django 環境中似乎都不能很好地發揮作用。

理想情況下,我正在尋找一個可以從 python shell 或 bash 執行的命令,以列出所有 pypy 支持的非 Django 原生的依賴項。

這不是一個完整的答案,但希望它能成為一個明智的起點。

據我所知,django 項目的依賴項(除了 django 本身及其依賴項* )包括:

  1. django 項目導入的模塊
  2. 您的項目通過settings.INSTALLED_APPS (及其依賴項)加載的應用程序

#1 項目導入的模塊

您可能可以使用蛇食來發現這一點

#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.)並將相關的模塊包含到您的依賴項列表中。

也許這很有用,以防項目使用“pip”來安裝依賴項/庫:

pip freeze

在 django 項目中運行此命令,這會將所有已安裝的包寫入到 requirements.txt 文件中

 pip freeze > requirements.txt

或者,如果您使用的是 python3,則像這樣使用 pip3

pip3 freeze > requirements.txt

您將在 django 項目中找到 requirements.txt 文件

豬豬對我來說很好用。

它不包括INSTALLED_APPS還沒有,但是這只是一些額外的工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM