Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#24403 closed Bug (duplicate)

makemessages when run for a django app and no settings will fail on settings.STATIC_ROOT and settings.MEDIA_ROOT not being set

Reported by: Carsten Klein Owned by: nobody
Component: Core (Management commands) Version: 1.8alpha1
Severity: Normal Keywords:
Cc: github.vibepy@… Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

In management/commands/makemessages.py it reads in line 375

ignored_roots = [os.path.normpath(p) for p in (settings.MEDIA_ROOT, settings.STATIC_ROOT)]

This will fail in situations where there is no STATIC_ROOT a/o MEDIA_ROOT, in which case ignored_roots will be populated with None, causing the subsequent path operation os.normpath(p) to fail.

This in turn will prevent users from generating the po files for django apps that do not have any such settings.

In order to fix this, the following code seems to work quite well

375         ignored_roots = []
376         if settings.MEDIA_ROOT:
377             ignored_roots.extend([os.path.normpath(p) for p in settings.MEDIA_ROOT])
378         if settings.STATIC_ROOT:
379             ignored_roots.extend([os.path.normpath(p) for p in settings.STATIC_ROOT])

I am using Django 1.8 installed via PyPi

# pip2 show django
---
Name: Django
Version: 1.8.dev20141027110112

Change History (3)

comment:1 by Claude Paroz, 9 years ago

Resolution: duplicate
Status: newclosed

Duplicate of #23717.
As you can see, your 1.8 version is several months old...

comment:2 by Carsten Klein, 9 years ago

Oh, great I did search for makemessages / django-admin but did not search for closed issues as well...

How about publishing a newer release on PyPi then?

Last edited 9 years ago by Carsten Klein (previous) (diff)

comment:3 by Claude Paroz, 9 years ago

You will get a new release with pip install --pre ...

Note: See TracTickets for help on using tickets.
Back to Top