Windows不识别scrapyd-deploy

2 投票
4 回答
4362 浏览
提问于 2025-04-17 23:53

我按照这个方法安装了 scrapyd

pip install scrapyd

我想使用 scrapyd-deploy

当我在命令行输入 scrapyd 时

出现了这个错误:

'scrapyd' 不是内部或外部命令,也不是可运行的程序或批处理文件。

4 个回答

0

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
1

对我来说,上面提到的解决方案没有用。

下面是我用的有效方法:(适用于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\PythonC:\Python27\Scripts,那么 scrapyscrapyd-deploy 这两个命令应该就能正常工作了。

2

如果你通过 pip install scrapyd-client 安装了 scrapyed-client,我建议你试试这个命令:

pip install git+https://github.com/scrapy/scrapyd-client

这个对我有效。

感谢 scrapyd-client 命令未找到 的帮助。

15

我遇到了同样的问题,也看到一些说法认为 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 部分可以查看任务是否确实被调度。

希望这些对你有帮助。

撰写回答