- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是一篇很长的文章,但经过广泛研究后我找不到解决方案。我在 OSX 10.8 上有一个 Django 1.4.1/Scrapy 0.14.4 混合项目,我使用 Django 项目的 manage.py
命令控制 Scrapy,如 here 所述。 .例如,调用
python manage.py scrapy crawl example_spider
工作没有问题。现在我要设置 scrapyd
web 服务来部署我的蜘蛛程序。但是,当我执行
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'
问题1:为什么Scrapy在我的设置中检测不到scrapy.cfg
文件?我该如何解决这个问题?
由于上面提到的东西不起作用,我尝试在我的 Scrapy 项目目录中使用 scrapy
命令来运行 scrapyd
服务器。从我的 Scrapy 项目的顶级目录执行 scrapy server
会产生以下结果:
$ 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>
服务器运行没有问题,但是找不到我的Scrapy项目的settings.py
文件,因为没有设置相应的环境变量。这就是我在终端中执行以下操作的原因:
export PYTHONPATH=/absolute/path/to/my/Scrapy/project
export SCRAPY_SETTINGS_MODULE=my_scrapy_project_name.settings
不幸的是,这两个命令没有效果。每当我执行 scrapy server
(或任何其他 Scrapy 命令)时,我都会收到 Scrapy 无法导入其项目设置模块的消息。
我的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
服务器似乎工作正常,但我如何才能正确上传我的蜘蛛程序?
非常感谢!
最佳答案
如果您查看 code branch that raises this exception和 definition of the closest_scrapy_cfg
function它调用的唯一地方是 scrapy 寻找你的 scrapy.cfg 是在你运行命令的目录和任何父目录中。您可以在您的 manage.py 中运行 os.chdir
,或者将您的 scrapy.cfg 移动到您正在运行的目录。
关于python - 无法导入 Scrapy 的设置模块或其 scrapy.cfg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12221937/
当我这样做时... import numpy as np ...我可以使用它但是... import pprint as pp ...不能,因为我需要这样做... from pprint import
我第一次尝试将 OpenCV 用于 Python 3。要安装,我只需在终端中输入“pip3 install opencv-python”。当我这样做时,我在 Finder(我在 Mac 上)中看到,在
如果有一个库我将使用至少两种方法,那么以下之间在性能或内存使用方面是否有任何差异? from X import method1, method2 和 import X 最佳答案 有区别,因为在 imp
我正在从 lodash 导入一些函数,我的同事告诉我,单独导入每个函数比将它们作为一个组导入更好。 当前方法: import {fn1, fn2, fn3} from 'lodash'; 首选方法:
之间有什么关系: import WSDL 中的元素 -和- import元素和在 XML Schema ...尤其是 location 之间的关系前者和 schemaLocation 的属性后者的属性
我在从 'theano.configdefaults' 导入 'local_bitwidth' 时遇到问题。并显示以下消息: ImportError
我注意到 React 可以这样导入: import * as React from 'react'; ...或者像这样: import React from 'react'; 第一个导入 react
对于当前的项目,我必须使用矩阵中提供的信息并对其进行数学计算,以及使用 ITK/VTK 函数来显示医疗信息/渲染。基本上我必须以(我猜)50/50 的方式同时使用 matlab 例程和 VTK/ITK
当我看到 pysqlite 的示例时,SQLite 库有两个用例。 from sqlite3 import dbapi2 as sqlite3 和 import sqlite3 为什么有两种方式支持s
我使用 Anaconda Python 发行版:Python 2.7 x64 和 Windows 7 SP1 x64 Ultimate。 当我import matplotlib.pyplot时,我得到
目录 【容器】镜像导出/导入 导出 导入 带标签 不带标签,后期修改 【仓库】镜像导出/导入
我正在寻找一种导入模块的方法,以便我可以从子文件夹 project/v0 和根文件夹 project 运行脚本。/p> 我在 python 3.6 中的文件结构(这就是没有初始化文件的原因) proj
我通常被告知以下是不好的做法。 from module import * 主要原因(或者有人告诉我)是,您可能会导入一些您不想要的东西,并且它可能会隐藏另一个模块中具有类似名称的函数或类。 但是,Py
我为 urllib (python3) 编写了一个小包装器。在if中导入模块是否正确且安全? if self.response_encoding == 'gzip': import gzip
我正在 pimcore 中创建一个新站点。有没有办法导出/导入 pimcore 站点的完整数据,以便我可以导出 xml/csv 格式的 pimcore 数据进行必要的更改,然后将其导入回来? 最佳答案
在 Node JS 中测试以下模块布局,看起来本地导出的定义总是在名称冲突的情况下替换外部导出的定义(参见 B.js 中的 f1)。 A.js export const f1 = 'A' B.js e
我在使用 VBA 代码时遇到了一些问题,该代码应该将 excel 数据导入我的 Access 数据库。当我运行代码时,我收到一个运行时错误“运行时错误 438 对象不支持此属性或方法”。来自我在其他论
我有一个名为 elements 的包,其中包含按钮、trifader、海报等内容。在 Button 类中,我正在执行 from elements import * 这执行正常,当我尝试 print(p
在我长期使用 python 的经验中,我遇到了一个非常奇怪的问题。 提前我想说我想知道为什么会发生这种情况 ,而不是如何更改我的代码或如何修复它,因为我也可以做到。 我正在使用 python2.7.3
我正在更新我的包。但是,我正在为依赖项/导入而苦苦挣扎。我使用了两个冲突的包 - ggplot2和 psych及其功能 alpha当然还有 alpha ggplot2 的对象不同于 alpha psy
我是一名优秀的程序员,十分优秀!