【问题标题】:windows scrapyd-deploy is not recognizedwindows scrapyd-deploy 无法识别
【发布时间】:2014-05-03 23:44:15
【问题描述】:

我已经像这样安装了scrapyd

pip install scrapyd

我想使用scrapyd-deploy

当我输入 scrapyd 时

我在 cmd 中遇到了这个异常:

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

【问题讨论】:

  • scrapyd-deploy 不起作用?请分享控制台输出
  • @pault。我告诉你 cmd 给了我什么,这就是我得到的全部
  • 这是 Windows 吗? linux?
  • 对不起,我不是 Windows 人。我四处打听
  • @pault。是否有可能scrapyd 在 Windows 上不可用。我发现这个网站scrapyd.readthedocs.org/en/latest/install.html因为没有windows配置

标签: python python-2.7 scrapy scrapyd


【解决方案1】:

我遇到了同样的问题,并且我还阅读了一些关于 scrapyd 不可用/无法在 Windows 上运行并几乎放弃它的意见(并不真正需要它,因为我打算部署到 linux 机器上,想要在 Windows 上使用 scrapyd 进行调试)。但是,经过一番研究,我找到了一种方法。由于我还没有找到任何明确的说明,我会尽量让我的答案尽可能详细,列出所有对我有用的步骤。

假设你想在本地机器上运行 scrapyd,你需要运行两条命令行:第一个用于连接到 scrapyd 并保持连接打开,第二个用于部署和调度。

  • 你已经 pip 安装了 scrapyd。

  • 在此文件夹中创建一个文件夹 C:\scrapyd 和一个名为 scrapyd.log 的空 .log 文件(不确定此步骤是否必要)。

  • 打开 cmd 并 cd 到 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 行。

  • 打开第二个命令行并 cd 到您的 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 下的作业下,您可以检查作业是否确实已安排。

我希望这会有所帮助。

【讨论】:

  • 非常感谢。请只做一件事。你写的是scrapy deploy -1,应该是scrapy deploy -l
  • 是的。那是scrapy deploy -l
  • TL;DR:scrapyd 和 scrapyd-deploy 脚本位于 python 安装的 Scripts 文件夹中,实际上只是 python 脚本。一种解决方案是使用 python 解释器显式调用它们。
  • 就我而言,部署不再可用。在将 scrapyd-deploy 文件复制到我的 scrapy 项目文件夹根目录并将 .py 文件扩展名添加到文件后,我能够让它工作。然后,我可以从命令行调用scrapyd-deploy.py -l等。
【解决方案2】:

对我来说,上面提出的解决方案不起作用。

以下对我有用:(适用于 0.24 版中的 scrapy)。

转到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 两个命令都应该可以工作。

【讨论】:

    【解决方案3】:

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

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

    它对我有用。

    感谢scrapyd-client command not found

    【讨论】:

      【解决方案4】:

      Marcin Rapacz 的回答对我有用。但是,我使用 anaconda 来管理我的 蟒蛇库。因此,文件应位于“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
      

      【讨论】:

        猜你喜欢
        • 2023-03-14
        • 2016-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多