【问题标题】:Access django models in scrapy with split settings使用拆分设置在 scrapy 中访问 django 模型
【发布时间】:2015-10-13 20:27:17
【问题描述】:

我正在尝试在 scrapy 中使用 django 应用程序模型,但在尝试使用 scrapyd-deploy 将 scrapy 代码部署到 scrapyd 时不断收到错误消息“没有名为 myapp.apps.myscraping.myscraping.items 的模块”。 我遇到的问题是我有拆分设置,例如 dev、qa、production。 根据各种链接,我在scrapy设置文件中添加了所需但无济于事。

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
import sys
sys.path.append(BASE_DIR)
os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings.dev'

我也尝试提供设置文件夹的路径,但无济于事。

在没有拆分设置的情况下尝试相同的操作,效果很好。

别说我用的是最新版的scrapy和scrapy。

任何建议都会有所帮助。

文件夹结构:

  • 项目
    • manage.py
    • 我的应用程序
      • __init__.py
      • 设置
        • 开发
        • qa
        • 产品
      • 应用程序
        • __init__.py
        • 应用程序1
          • __init__.py
          • models.py
          • views.py
        • myscraping
          • __init__.py
          • scrapy.cfg
          • myscraping
            • __init__.py
            • items.py
            • pipelines.py
            • settings.py
            • 蜘蛛
              • __init__.py
              • dmoz.py

问候

【问题讨论】:

  • 能否附上您的项目结构?会有很大帮助的。
  • 用文件夹结构更新了查询。

标签: python django scrapy scrapyd


【解决方案1】:

你错过了将scrapy中的pythonpath添加到django项目

# Setting up django's project full path.
import sys
sys.path.insert(0, '/home/zartch/Projects/Scrapy-Django/myweb')

您正在附加到路径 BASE_DIR (/Project/myapp/apps/myscraping),您只需添加 /Project

【讨论】:

    猜你喜欢
    • 2011-05-15
    • 2013-10-04
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2013-10-15
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多