我试图将i8n添加到Django应用程序中,但是当我执行时:
(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。
有什么想法吗?
答案 0 :(得分:1)
Django的doc并不真的“推荐”使用django-admin
代替./manage.py
- 实际上the doc states that:
通常,在处理单个Django项目时,使用manage.py比使用django-admin更容易。 (......) 本文档中的命令行示例使用django-admin保持一致,但任何示例都可以使用manage.py或python -m django。
原因是:
此外,在每个Django项目中自动创建manage.py。 manage.py与django-admin做同样的事情,但为你处理一些事情: 它将您的项目包放在sys.path上。 它设置DJANGO_SETTINGS_MODULE环境变量,使其指向项目的settings.py文件。
NB实际上第二点并非完全准确 - ./manage.py
只会设置DJANGO_SETTINGS_MODULE
,如果它已经在您的环境中设置 。
因此,当使用django-admin
时,您必须确保它将找到您的设置模块(通过设置环境变量或通过使用--settings
选项传递它)并且您的项目的根目录是你的pythonpath。
实际上,除startproject
命令外 - 根据定义,您还没有./manage.py
文件 - 除非您需要,否则没有理由使用django-admin
明确使用不同的设置模块而不更改环境变量。