Windows不识别scrapyd-deploy
我按照这个方法安装了 scrapyd
pip install scrapyd
我想使用 scrapyd-deploy
当我在命令行输入 scrapyd 时
出现了这个错误:
'scrapyd' 不是内部或外部命令,也不是可运行的程序或批处理文件。
4 个回答
Marcin Rapacz的回答对我有用。不过,我是用anaconda来管理我的Python库。所以,相关的文件应该放在"C:\Program Files (x86)\Anaconda3\Scripts"这个路径下,文件里的内容需要像这样修改:
@echo off
"C:\Program Files (x86)\Anaconda3\python.exe" "C:\Program Files
(x86)\Anaconda3\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
对我来说,上面提到的解决方案没有用。
下面是我用的有效方法:(适用于scrapy版本0.24)。
首先,去到 C:\Python27\Scripts
文件夹,创建两个文件:
scrapy.bat
scrapyd-deploy.bat
用记事本打开这两个文件,并粘贴内容:
在 scrapy.bat
文件中:
@echo off
c:\Python27\python c:\Python27\Scripts\scrapy %*
在 scrapyd-deploy.bat
文件中:
@echo off
c:\Python27\python c:\Python27\Scripts\scrapyd-deploy %*
然后保存这些文件,并重启命令提示符(cmd)。
如果你的 PATH
中包含 C:\Python27\Python
和 C:\Python27\Scripts
,那么 scrapy
和 scrapyd-deploy
这两个命令应该就能正常工作了。
如果你通过 pip install scrapyd-client
安装了 scrapyed-client,我建议你试试这个命令:
pip install git+https://github.com/scrapy/scrapyd-client
这个对我有效。
感谢 scrapyd-client 命令未找到 的帮助。
我遇到了同样的问题,也看到一些说法认为 scrapyd 在 Windows 上不可用或者无法运行,差点就放弃了(其实我并不需要它,因为我打算部署到 Linux 机器上,只是想在 Windows 上用 scrapyd 来调试)。不过,经过一些研究,我找到了一种方法。因为我没有找到明确的说明,所以我会尽量详细地列出所有对我有效的步骤。
假设你想在本地机器上运行 scrapyd,你需要打开两个命令行窗口:第一个用于连接 scrapyd 并保持连接,第二个用于部署和调度。
你已经通过 pip 安装了 scrapyd。
在 C:\scrapyd 创建一个文件夹,并在这个文件夹里创建一个名为 scrapyd.log 的空日志文件(不确定这一步是否必要)。
打开命令提示符,进入 Python 的 Scripts 文件夹。这个路径通常是类似于 C:\Python27\Scripts 的地方。输入:
python scrapyd
此时你应该能看到类似下面的内容:
2014-03-26 13:57:30+0200 [-] Log opened. 2014-03-26 13:57:30+0200 [-] twistd 13.2.0 (C:\Python27\python.exe 2.7.6) starting up. 2014-03-26 13:57:30+0200 [-] reactor class: twisted.internet.selectreactor.SelectReactor. 2014-03-26 13:57:30+0200 [-] Site starting on 6800 2014-03-26 13:57:30+0200 [-] Starting factory <twisted.web.server.Site instance at 0x0000000003F69208> 2014-03-26 13:57:30+0200 [Launcher] Scrapyd 1.0.1 started: max_proc=16, runner='scrapyd.runner'
如果你能打开浏览器并访问
http://localhost:6800
,那么就没问题。命令行窗口要保持打开状态,因为如果你关闭它,连接就会断开。在 Windows 资源管理器中,找到你的 scrapy 项目文件夹,编辑里面的 scrapy.cfg 文件:写上你的部署目标名称,比如 [deploy:scrapyd],并取消注释 url 行。
打开第二个命令行窗口,进入你的 scrapy 项目文件夹。输入:
scrapy deploy -l
进行部署:输入:
scrapy deploy scrapyd -p project_name
(scrapyd 是你的目标)。你应该会收到服务器的 200 响应代码和 ok 状态。你也可以通过输入:scrapy deploy -L scrapyd
来检查部署是否成功。调度:你需要为 Windows 安装 curl。方法可以参考这个链接:questions/9507353/steps-to-setup-curl-in-windows。输入:
curl http://localhost:6800/schedule.json -d project=project_name -d spider=spider_name
。同样,你应该会收到 ok 状态,在浏览器中访问http://localhost:6800
的 jobs 部分可以查看任务是否确实被调度。
希望这些对你有帮助。