在scrapy框架里面,setting.py是整个项目的配置文件
我本地开发环境的mysql配置信息如果写在了setting.py里面,那么线上的环境的setting.py也会存放一模一样的mysql配置信息
有没有办法,可以区分本地和线上环境,从而读取不同的配置文件。比如本地环境就读取‘local_setting.py’,生产环境就读取‘sever_setting.py’?
在scrapy框架里面,setting.py是整个项目的配置文件
我本地开发环境的mysql配置信息如果写在了setting.py里面,那么线上的环境的setting.py也会存放一模一样的mysql配置信息
有没有办法,可以区分本地和线上环境,从而读取不同的配置文件。比如本地环境就读取‘local_setting.py’,生产环境就读取‘sever_setting.py’?
有同样问题,楼上两个答案并未解决该问题。
最后采用了scrapyd-client的README提供的在配置文件中import一个不会被部署的配置文件,通过覆盖配置来实现环境区分的解决方案,不够优雅,但足够实用:
You may want to keep certain settings local and not have them deployed to Scrapyd. To accomplish this you can create a local_settings.py file at the root of your project, where your scrapy.cfg file resides, and add the following to your project's settings:
try:
from local_settings import *
except ImportError:
pass
scrapyd-deploy doesn't deploy anything outside of the project module, so the local_settings.py file won't be deployed.
2 回答4.3k 阅读✓ 已解决
2 回答863 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答857 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
4 回答2.6k 阅读
5 回答1.5k 阅读
在scrapy项目中有个scrapy.cfg文件,里面有一项指定了settings文件