使用ENV SCRAPY_SETTINGS_MODULE的Scrapy设置不起作用

时间:2018-02-13 09:49:40

标签: python scrapy

我想将设置拆分为production.pylocal.py。不同的设置在不同的环境中加载,我在ENV变量SCRAPY_SETTINGS_MODULE中定义为project.localproject.production

问题是,每当我定义ENV var并运行scrapy crawl myspider时,我都会收到此错误:

  

ModuleNotFoundError:没有名为'project'的模块

如果我没有定义SCRAPY_SETTINGS_MODULE,则将其设置为默认值project.settings,并且不会引发错误。如果我将ENV var设置为其默认值,我仍然会得到ModuleNotFoundError

基本上,它可以导入project.settings这是它的默认值,但如果我设置SCRAPY_SETTINGS_MODULE=project.settings则会抛出错误。

1 个答案:

答案 0 :(得分:1)

尝试将您的项目添加到PYTHONPATH。通过查看加载设置的代码,您会看到如果未在ENV中设置.htaccess,则会调用SCRAPY_SETTINGS_MODULE

https://github.com/scrapy/scrapy/blob/bca374d65192e6347f847e0feeac5b8a2a84e710/scrapy/utils/project.py#L61-L63

适当地为您设置init_env

https://github.com/scrapy/scrapy/blob/bca374d65192e6347f847e0feeac5b8a2a84e710/scrapy/utils/conf.py#L82