我有一个废蜘蛛正在使用gettext
来翻译一些字符串。本地化文件存储在/locale/
中。在
加载翻译时,我使用以下代码:
t = gettext.translation('sv', localedir=LOCALE_DIR, languages=['sv'])
在中设置了LOCALE_DIR
设置.py代码如下:
当我使用scrapy crawl spider
在本地运行代码时,这非常有效。但是当我将它部署到scrapyd
时,它会生成一个.egg文件,并且无法再找到本地化文件。当我从部署的版本打印LOCALE_DIR
时。它给了我/tmp/condobot-1428391146-4QuH3E.egg/locale
。在
我想这就是文件找不到的原因。路径是文件的子文件夹,这没有意义。我所期望的是.egg文件将被提取到一个文件夹中,路径将指向/tmp/condobot-1428391146-4quh3e/locale
。在
LOCALE_DIR
,而不是我目前的方法?我也尝试过将其设置为locale
,但没有得到更好的结果。在编辑:我确实使用setup.py
文件,代码如下:
from setuptools import setup, find_packages
setup(
name = 'project',
version = '1.0',
packages = find_packages(),
entry_points = {'scrapy': ['settings = condobot.settings']},
package_data = {
# If any package contains *.txt or *.rst files, include them:
'': ['*.mo', '*.po', '*.txt'],
},
)
我也试着用下面的方法设置.py用一个清单.in文件:
from setuptools import setup, find_packages
setup(
name = 'project',
install_requires = ['distribute'],
version = '1.0',
packages = find_packages(),
entry_points = {'scrapy': ['settings = condobot.settings']},
include_package_data = True,
zip_safe = False,
)
在清单.in在
recursive-include locale *
recursive-include condobot/locale *
我的文件结构如下:
- condobot
- locale
- sv
- LC_MESSAGES
sv.mo
pipelines.py
settings.py
- locale
- sv
- LC_MESSAGES
sv.mo
MANIFEST.in
requirements.txt
scrapy.cfg
setup.py
(我将/locale/文件夹放在/和/condobot/中,以确保路径没有错误。)
我已经提取了.egg文件,我可以确认它确实包含/locale/
文件夹,并且在/locale/
文件夹中有{
所以问题似乎不是设置.py文件不包括.egg
文件中的文件。似乎路径/......./file.egg/locale/
不起作用。在
在python模块打包为egg之后,确保任何其他非源文件都可以访问的方法是指定},以便在安装时完全提取包,即:
zip_safe
为{相关问题 更多 >
编程相关推荐