Опитвам се да добавя i8n в приложение Джанго, но когато изпълнявам:
(venv) user@machine:~/path/to/repo$ django-admin makemessages -l es
Следващата грешка е хвърлена:
PermissionError: [Errno 13] Permission denied: "./venv/lib/python3.5/site-packages/Jinja2-2.9.5.dist-info/LICENSE.txt.py"
Но ако го използвам с manage.py вместо с django-admin, той работи правилно. В документацията django препоръчват да се използва django-admin.
Някакви идеи?
Отговори:
1 за отговор № 1Док на Джанго наистина не "препоръчва" да се използва django-admin
вместо ./manage.py
- всъщност докторът заявява това:
Обикновено, когато работите върху един Джангопроект, е по-лесно да използвате manage.py от django-admin. (...) Примерите в командния ред в целия документ използват django-admin като последователни, но всеки пример може да използва manage.py или python -m django също.
Причината е, че:
Освен това, управлявайте.py се създава автоматично във всеки проект на Django. manage.py прави същото като django-admin, но се грижи за няколко неща за вас: Той поставя пакета на вашия проект на sys.path. Той задава променливата на средата DJANGO_SETTINGS_MODULE, така че да сочи към файла settings.py на проекта.
Всъщност всъщност втората точка не е напълно точна - ./manage.py
само набори DJANGO_SETTINGS_MODULE
ако е не вече поставени във вашето обкръжение.
Така че, когато използвате django-admin
трябва да се уверите, че той ще намери своя модул за настройки (или чрез настройка на променливата за околната среда, или като го пренесе с --settings
опция) и че коренът на проекта ви е във вашия пиthonpath.
Всъщност, с изключение на startproject
команда - откъде по дефиниция нямате вече ./manage.py
файл - няма причина да се използва django-admin
изобщо, ако не искате да използвате изрично друг модул за настройки, без да променяте променливата за околната среда.