1

我正在尝试设置scrapy设置以在本地和scrapinghub上使用测试和生产环境。我想知道是否有任何方法可以在 shub deploy 上设置这个变量(例如如下):

在此处输入图像描述

然后在settings.py:

if env == "test":
     var1 = some_ip
     var2 = username
elif env == "prod":
     var1 = some_ip
     var2 = username

或者......也许有更清洁的方法?

感谢您的阅读!

PS:我想根据蜘蛛/项目所在的环境自动化设置,而不是手动更改变量。

编辑:找到更好的解决方案。检查答案

4

2 回答 2

2

如果您想使用环境变量来控制它,您可以执行以下操作:导出一个DEPLOY_TARGET包含testor的环境变量prod并执行以下命令进行部署

shub deploy $DEPLOY_TARGET
于 2017-11-14T23:46:41.537 回答
1

最后,我按照以下步骤解决了我的问题:

所以现在我的设置如下所示:

设置树

  • 然后我的__init__.py样子是这样的:

__init__.py 文件

  • 接下来,修改_environment.py如下:

_环境.py。 这是一个函数助手,它以编程方式获取当前 Scrapy 所在的环境

我希望我有帮助!

PS:请记住,您需要在 scrapinghub 上有两个项目,一个用于生产,一个用于测试,您还需要从同一个项目进行部署,如下所示:

scrapinghub.yml

然后你只需要(参考):

  • shub deploy test部署到测试。
  • shub deploy prod部署到生产环境。
  • shub deploy部署到测试。
于 2017-11-15T11:15:16.263 回答