无法导入 Scrapy 的设置模块或其 scrapy.cfg

2023-11-22

这是一篇相当长的文章,但经过广泛的研究后我找不到解决方案。我在 OSX 10.8 上有一个混合的 Django 1.4.1 / Scrapy 0.14.4 项目,我用 Django 项目的控制 Scrapymanage.py如上所述的命令here。例如,调用

python manage.py scrapy crawl example_spider 

工作没有问题。现在我想要设置scrapyd用于部署我的蜘蛛的网络服务。但是,当我执行

python manage.py scrapy server

然后我得到这个异常:

scrapy.exceptions.NotConfigured: Unable to find scrapy.cfg file to infer project data dir

所以,显然Scrapy找不到scrapy.cfg文件,因为我不从 Scrapy 项目中执行它。然而,其他 Scrapy 命令可以工作,因为在我的 Django 项目中settings.py我做了以下事情:

sys.path.append('/absolute/path/to/my/Scrapy/project')
os.environ['SCRAPY_SETTINGS_MODULE'] = 'my_scrapy_project_name.settings'

问题一:为什么Scrapy检测不到scrapy.cfg我的设置中的文件?我该如何解决这个问题?


由于上面提到的东西不起作用,我尝试获取scrapyd服务器运行仅使用scrapy来自我的 Scrapy 项目目录中的命令。执行中scrapy server从我的 Scrapy 项目的顶级目录生成以下内容:

$ scrapy server
UserWarning: Cannot import scrapy settings module my_scrapy_project_name.settings
warnings.warn("Cannot import scrapy settings module %s" % scrapy_module)
2012-08-31 21:58:31+0200 [-] Log opened.
2012-08-31 21:58:32+0200 [-] Scrapyd web console available at http://localhost:6800/
2012-08-31 21:58:32+0200 [Launcher] Scrapyd started: max_proc=8, runner='scrapyd.runner'
2012-08-31 21:58:32+0200 [-] Site starting on 6800
2012-08-31 21:58:32+0200 [-] Starting factory <twisted.web.server.Site instance at 0x101dd3d88> 

服务器运行没有问题,但是settings.py找不到我的 Scrapy 项目的文件,因为不再设置相应的环境变量。这就是我在终端中执行以下操作的原因:

export PYTHONPATH=/absolute/path/to/my/Scrapy/project
export SCRAPY_SETTINGS_MODULE=my_scrapy_project_name.settings

不幸的是,这两个命令没有任何作用。每当我执行scrapy server(或任何其他 Scrapy 命令),我收到消息 Scrapy 无法导入其项目的设置模块。

My scrapy.cfg目前只有以下内容:

[settings]
default = my_scrapy_project_name.settings

[deploy:scrapyd]
url = http://localhost:6800/
project = my_scrapy_project_name

当我尝试将我的 Scrapy 项目部署到scrapyd服务器,一开始似乎可以工作,但后来我意识到没有一个蜘蛛被上传,可能是因为无法检测到设置文件。这是控制台输出:

$ scrapy deploy scrapyd -p my_scrapy_project_name
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-
packages/scrapy/utils/project.py:17: UserWarning: Cannot import scrapy
settings module my_scrapy_project_name.settings
 warnings.warn("Cannot import scrapy settings module %s" %
scrapy_module)
Building egg of event_crawler-1346531706
'build/lib' does not exist -- can't clean it
'build/bdist.macosx-10.6-intel' does not exist -- can't clean it
'build/scripts-2.7' does not exist -- can't clean it
zip_safe flag not set; analyzing archive contents...
Deploying event_crawler-1346531706 to http://localhost:6800/addversion.json
Server response (200):
{"status": "ok", "project": "my_scrapy_project_name", "version": "1346531706", "spiders": 0}

问题2:如何正确导出上面的路径和环境变量以使这个警告消失?

问题3:自从scrapyd服务器似乎工作正常,我怎样才能正确上传我的蜘蛛?

提前谢谢了!


如果你看一下引发此异常的代码分支的定义closest_scrapy_cfg功能它调用的唯一地方 scrapy 寻找 scrapy.cfg 的地方是在您运行命令的目录和任何父目录中。你也许可以跑os.chdir在你的manage.py中,或者将你的scrapy.cfg移动到你正在运行的目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法导入 Scrapy 的设置模块或其 scrapy.cfg 的相关文章

随机推荐

  • 通过送纸器进行 WIA 扫描

    通过送纸器进行 WIA 扫描 这是我的设备属性 Document Handling Select 1 2 is for flatbed and 1 is for the feeder 这是我的项目 页面 属性 Horizontal Reso
  • Onclicklistener 无法正常工作..?

    我有一个按钮 我使用旋转动画将其旋转 45 度 并将其应用于烘烤消息的单击侦听器 当我单击按钮的上部 50 时 将显示吐司 但是当我点击按钮的下 50 时 没有任何显示 这里是动画代码
  • Spring:缺少 JPA 元模型

    我无法理解我的带有 JPA 存储库的简单 Spring MVC 项目出了什么问题 您能给个提示吗 Domain package com test app Entity Table name foo table public class Fo
  • Firebase 用户为已注册的用户返回空元数据

    我一直在使用 Firebase 对应用程序中的用户进行身份验证 FirebaseAuth getInstance getCurrentUser getMetadata 回报null当用户注册后返回应用程序时 当用户第一次注册但返回时它工作正
  • 为什么 SQL Server 默认 XACT_ABORT 为 OFF?可以全局设置为ON吗? [复制]

    这个问题在这里已经有答案了 我明白的目的设置XACT ABORT命令 当 SET XACT ABORT 为 ON 时 如果 Transact SQL 语句引发 运行时错误 整个事务被终止并回滚 当 SET XACT ABORT 为 OFF
  • 我无法使用 marionette 驱动程序和 selenium 3 在 FireFox 48 的下拉列表中选择选项

    我尝试了新的 geckodriver 并为 FF48 和 selenium 3 打开了 marionette 但测试无法在任何元素的下拉列表中选择选项 我的测试在 FF45 和所有其他浏览器中运行良好 只有木偶驱动程序没有选择下拉列表中的选
  • SIMD 最小磁极和最大磁极

    我想实现SIMD最小磁极和最大磁极函数 据我了解这些功能是 minmag a b a lt b a b maxmag a b a gt b a b 我想要这些浮点型和双精度型 我的目标硬件是 Haswell 我真正需要的是计算两者的代码 这
  • SQL Server 2008 安装错误:Microsoft Visual Studio 2008 的早期版本

    在安装 SQL Server 2008 开发人员版的过程中 我遇到了这个奇怪的错误 其中提到我应该安装 VSTS 2008 SP1 但实际上我安装了 VSTS 2008 SP1 任何想法有什么问题吗 这是我的屏幕快照 http i41 ti
  • 通过 Apache PDFBox 将 MS Office 文档添加到 PDF

    我正在使用 Apache PDFBox http pdfbox apache org 用于从任意数量的文件 包括图像和其他 PDF 创建 PDF 现在我需要将 MS Office 文档 Word Excel 和 Outlook MSG 添加
  • pathlib.py:在 Windows 上实例化“PosixPath”

    我克隆了thefuck源代码来自它的存储库 这是真正的项目名称 是的 我知道 尝试通过以下命令安装它以进行开发 pip install r requirements txt python setup py develop 效果很好 后来尝试
  • 在 Python 2 中,我可以将列表传递给百分比格式运算符吗?

    我有一个要使用格式字符串打印的内容列表 在 Python 3 风格中 使用 a string format arg arg arg 这很容易 我可以用参数替换 mylist like mylist 1 2 3 format mylist 我
  • 运行 apache 的 Docker 容器始终暴露端口 80

    我有一个运行 Apache 的 Docker 映像 并且我已经配置了 Apache 通过httpd conf 监听端口8080 Listen 8080 当我构建图像并运行它时 我能够通过端口成功连接到我的网站8080 所以此时一切似乎都很好
  • 如何使用CSS在电子邮件正文中发送网页

    我正在使用 html 表和 asp net 标签在 asp net 网页上创建报告 我必须在邮件正文中通过电子邮件发送完成的报告 我使用以下 c 代码完成了此操作 public bool SendEMail List
  • 例外:在 Linux 中“给定的最终块未正确填充”,但它在 Windows 中有效

    我的应用程序在 Windows 中运行 但在 Linux 中失败Given final block not properly padded例外 配置 JDK版本 1 6 Windows 版本 7 Linux CentOS 5 8 64位 我
  • PHP递归备份脚本

    我为我的网站编写了一个基本的内容管理系统 包括一个管理面板 我了解基本的文件 IO 以及通过 PHP 进行复制 但我尝试从脚本调用备份脚本失败了 我尝试这样做 authentication other functions for scand
  • libgit2 支持 SSH 传输协议吗?

    是否可以使用 ssh keys 通过 ssh 克隆存储库 libgit2 中尚未实现 SSH 传输 检查第1103期罢工 gt 第 1558 期为了进步 Update 拉取请求1508 已合并2013 年 5 月 16 日 从那时起 它也得
  • Modernizr.load 已弃用。 Yepnope.js 已弃用。怎么办?

    在 Modernizr v3 之前 我使用的是 yepnope js Modernizr load 和 yepnope js 均已被弃用 现在我们如何有条件地调用样式表或 JavaScript 文件 使用 Modernizr v2 5 3
  • 什么是方法重载? [复制]

    这个问题在这里已经有答案了 我发现一些资源说方法重载是一种语言根据上下文使用相同方法并产生不同结果的能力 不知何故 当我阅读其他定义时 我觉得这不是完整的定义 方法重载还有更多内容吗 这只是一种非常笼统的描述方式 方法重载允许您使用单个方法
  • 阅读一个大的 Excel 文档

    我想知道在 Excel 中读取单元格的最快方法是什么 我有一个包含 50000 行的 Excel 文件 我想知道如何快速读取它 我只需要阅读第一列 使用 oledb 连接大约需要 15 秒 有更快的方法吗 Thanks 以下是依赖于使用 M
  • 无法导入 Scrapy 的设置模块或其 scrapy.cfg

    这是一篇相当长的文章 但经过广泛的研究后我找不到解决方案 我在 OSX 10 8 上有一个混合的 Django 1 4 1 Scrapy 0 14 4 项目 我用 Django 项目的控制 Scrapymanage py如上所述的命令her