【问题标题】:scrapy startproject doesn't use designated TEMPLATES_DIR for generating project settings.pyscrapy startproject 不使用指定的 TEMPLATES_DIR 来生成项目 settings.py
【发布时间】:2015-07-23 21:50:23
【问题描述】:

当我像这样运行 scrapy (0.24.6) 时:

scrapy startproject -s TEMPLATES_DIR=local_templates_dir my_project

我得到一个my_project/my_project/settings.py,它显然是从包默认scrapy/templates/project/module/settings.py.tmpl 生成的,而不是从我的local_templates_dir 下找到的模板生成的,顺便说一下,它与scrapy/templates 中的目录结构相同。没有错误或警告消息。

虽然docs 似乎暗示这是要做的事情,但scrapy/commands/startproject.py 中的代码似乎说我根本不能指望这会起作用。它似乎是为包模板文件夹硬编码的。我是否遗漏了一些东西,一个环境设置可能会使这项工作按我期望的方式工作?我需要写custom command module 才能获得正确的设置吗?

动机只是为我的团队提供一个本地项目设置模板,而不是要求每个开发人员在运行 startproject 后必须手动更新settings.py 的默认模板。感谢您的帮助。

【问题讨论】:

    标签: python templates scrapy settings


    【解决方案1】:

    是的,你是对的,这是目前 Scrapy 模板的一个限制。

    所以,在你的情况下,我只需要使用cookiecutter 模板。

    Scrapy 模板非常适合刚开始使用 Scrapy 的人,但 Cookiecutter 比它有几个优点:您可以添加自定义变量以在创建项目时询问,您可以在目录名称中使用变量,从 Python 脚本调用 cookiecutter,等等。在维护您自己的模板项目时,所有这些都会带来好处。

    此外,您可以将 cookiecutter 的知识重用于任何其他项目(甚至与 Python 无关),因此这似乎是一项不错的投资。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-27
      • 2014-03-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-15
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      相关资源
      最近更新 更多