[英]Get a list of python packages used by a Django Project
有沒有什么簡單的方法可以獲取 Django 項目使用的 python 包列表?
我看過蛇食和這個問題,但在 django 環境中似乎都不能很好地發揮作用。
理想情況下,我正在尋找一個可以從 python shell 或 bash 執行的命令,以列出所有 pypy 支持的非 Django 原生的依賴項。
這不是一個完整的答案,但希望它能成為一個明智的起點。
據我所知,django 項目的依賴項(除了 django 本身及其依賴項*
)包括:
settings.INSTALLED_APPS
(及其依賴項)加載的應用程序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 文件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.