gpt4 book ai didi

python - Django 的语言环境文件安装在奇怪的地方

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:37 25 4
gpt4 key购买 nike

我正在为我的组织创建一个新的环境设置脚本,但在安装 Django 时遇到了问题。执行后 pip install Django==1.4.19在 virtualenv 下,需要本地化支持的测试产生:

  ...
File "/home/ubuntu/venvs/myenv/local/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 105, in activate
return _trans.activate(language)
File "/home/ubuntu/venvs/myenv/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 194, in activate
_active.value = translation(language)
File "/home/ubuntu/venvs/meynv/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 184, in translation
current_translation = _fetch(language, fallback=default_translation)
File "/home/ubuntu/venvs/myenv/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 147, in _fetch
res._info = res._info.copy()
AttributeError: 'NoneType' object has no attribute '_info'

深入 Django 的 trans_real.translation()函数显示错误来自于尝试查找目录 django~/venvs/myenv/local/lib/python2.7/site-packages/django/conf/locale 下,但是该目录不包含翻译文件或 LC_MESSAGES目录:

(myenv)ubuntu@ubuntu:~$ ls ~/venvs/myenv/local/lib/python2.7/site-packages/django/conf/locale/en/
total 12
-rw-rw-r-- 1 ubuntu ubuntu 1637 Jun 22 13:51 formats.py
-rw-rw-r-- 1 ubuntu ubuntu 1094 Jun 22 13:51 formats.pyc
-rw-rw-r-- 1 ubuntu ubuntu 0 Jun 22 13:51 __init__.py
-rw-rw-r-- 1 ubuntu ubuntu 149 Jun 22 13:51 __init__.py

相反,可以在 virtualenv 的根目录下找到 .po 和 .mo 文件:

(myenv)ubuntu@ubuntu:~$ ls -l ~/venvs/myenv/django/conf/locale/en/LC_MESSAGES/
-rw-rw-r-- 1 ubuntu ubuntu 356 Jun 22 13:51 django.mo
-rw-rw-r-- 1 ubuntu ubuntu 21041 Jun 22 13:51 django.po

一般目录~/venvs/myenv/local/lib/python2.7/site-packages/django不包含 .po 或 .mo 文件,所有这些都可以在 ~/venvs/myenv/django 下找到在适当的子目录中。

Pip 版本是 7.0.3,如果我将它降级到 6.1.1 版本(我们之前一直在使用),翻译文件可以(正确?)在 site-packages/django 下找到一切正常。

什么会导致新 pip 出现这种特殊行为?

更新它也出现djcelery包受此影响。它的 .html 文件(只有那些)安装在 virtualenv 的根目录下,而其余的则在 site-packages/djcelery 下。 :

/home/ubuntu/venvs/myenv/djcelery/
+-- templates
+-- admin
| +-- djcelery
| +-- change_list.html
+-- djcelery
+-- confirm_rate_limit.html

这些 html 文件和 django 的 .po/.mo 文件之间有一些共同 pip 吗?

最佳答案

不完全是一个优雅的修复,但如果你只需要让你的项目启动并运行并且降级 pip 不是一个选项,符号链接(symbolic link)就可以做到:

ln -s ~/.virtualenvs/<virtualenv>/django/conf/locale/en/LC_MESSAGES/ \
~/.virtualenvs/<virtualenv>/local/lib/python2.7/site-packages/django/conf/locale/en/

关于python - Django 的语言环境文件安装在奇怪的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30980682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com