首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Django makemessages拒绝许可

在Django makemessages拒绝许可
EN

Stack Overflow用户
提问于 2017-03-10 12:55:14
回答 1查看 1.3K关注 0票数 3

我试图将i8n添加到Django应用程序中,但当我执行以下操作时:

代码语言:javascript
复制
(venv) user@machine:~/path/to/repo$ django-admin makemessages -l es

引发下一个错误:

代码语言:javascript
复制
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。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-10 13:38:51

Django的文档并没有真正“重新推荐”使用django-admin而不是./manage.py -实际上是医生说

通常,在处理单个Django项目时,使用manage.py比django-admin更容易。(...)本文档中的命令行示例使用django-admin保持一致,但任何示例也可以使用manage.py或python。

原因是:

此外,在每个Django项目中都会自动创建manage.py。manage.py与django-admin做同样的事情,但它为您处理了一些事情:它将项目的包放在sys.path上。它设置DJANGO_SETTINGS_MODULE环境变量,以便指向项目的settings.py文件。

注:实际上,第二点并不完全准确-- ./manage.py只在环境中设置了而不是时才设置DJANGO_SETTINGS_MODULE

因此,在使用django-admin时,您必须确保它将找到您的设置模块(通过设置环境变量或通过--settings选项传递它),并且您的项目的根位于您的pythonpath中。

实际上,除了startproject命令(根据定义,您还没有./manage.py文件- )之外,没有理由使用django-admin,除非您想要显式地使用不同的设置模块而不更改您的环境变量。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42718942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档