Скажем, я хочу напечатать все мои установленные приложения с информацией о версии при запуске сервера .. У меня есть эта настройка:
Project
/app-one
__init__.py
otherstuff
/app-two
__init__.py
otherstuff
/__init__.py
/admin.py
/urls.py
/settings.py
main init file
import settings
if settings.DEBUG:
for app in settings.INSTALLED_APPS:
try:
import app
print getattr(app, '__version__', None)
except Exception:
pass
app init file (s)
__version_info__ = ('0', '0', '1')
__version__ = '.'.join(__version_info__)
Я попал в оператор pass ... Я полагаю, это потому, что экземпляры работают в Python, но как мне это исправить?
это работает, хотя:
import app
getattr(app, '__version__', None)
Это исправлено:
import settings
if settings.DEBUG:
for app in settings.INSTALLED_APPS:
app = __import__(app)
print getattr(app, '__version__', None)