在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.
4 回答4.4k 阅读✓ 已解决
5 回答3.2k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
在scrapy项目中有个scrapy.cfg文件,里面有一项指定了settings文件