ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

关于Windows部署scrapyd项目报错的两个问题

2021-04-24 17:02:25  阅读:742  来源: 互联网

标签:deploy Windows utils -- scrapy 报错 Scripts scrapyd


在windows环境中,当我们需要部署scrapy项目到服务器时,常用到scrapyd,作为部署管理工具,在服务器端安装scrapyd并运行后,就可以正常使用。但是,当我们需要将windows本地的scrapy项目部署到服务器上时,需要安装scrapyd-client,用于打包项目,并发送给远程的scrapyd。

第一个问题
pip install scrapyd-client 后。在cmd中运行部署命令,scrapyd-deploy 却提示:

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

在python目录的Scripts目录下,能找到一个scrapy-deploy的文件,但是无法运行。下面来讲解决办法:

  1. 进到C:/python36/Scripts 目录下,创建两个新文件:
    scrapy.bat 文件
    scrapyd-deploy.bat 文件

  2. 编辑两个文件:

scrapy.bat文件中输入以下内容 :

@echo off
C:\Python36\python.exe C:\Python36\Scripts\scrapy %*

scrapyd-deploy.bat 文件中输入以下内容:

@echo off
C:\Python36\python.exe C:\Python36\Scripts\scrapyd-deploy %*
  1. 保存退出,并确保你的 C:/python 和C:/python/Scripts 都在环境变量。这样就可以正常运行scrapy-deploy命令了。

第二个问题:
执行scrapyd-deploy -h 提示报错

C:\Users\Administrator>scrapyd-deploy
Traceback (most recent call last):
  File "C:\Python36\Scripts\scrapyd-deploy", line 23, in <module>
    from scrapy.utils.http import basic_auth_header
ModuleNotFoundError: No module named 'scrapy.utils.http'

由于底层scrapyd-deploy的模块scrapy.utils.http已经弃用,建议更新为w3lib.http替代
打开文件"C:\Python36\Scripts\scrapyd-deploy",注释第23行,修改如下:

from scrapy.utils.project import inside_project
#from scrapy.utils.http import basic_auth_header
from w3lib.http import basic_auth_header
from scrapy.utils.python import retry_on_eintr
from scrapy.utils.conf import get_config, closest_scrapy_cfg

重新执行已解决。
C:\Users\Administrator>scrapyd-deploy -h

Usage: scrapyd-deploy [options] [ [target] | -l | -L <target> ]

Deploy Scrapy project to Scrapyd server

Options:
  -h, --help            show this help message and exit
  -p PROJECT, --project=PROJECT
                        the project name in the target
  -v VERSION, --version=VERSION
                        the version to deploy. Defaults to current timestamp
  -l, --list-targets    list available targets
  -a, --deploy-all-targets
                        deploy all targets
  -d, --debug           debug mode (do not remove build dir)
  -L TARGET, --list-projects=TARGET
                        list available projects on TARGET
  --egg=FILE            use the given egg, instead of building it
  --build-egg=FILE      only build the egg, don't deploy it

标签:deploy,Windows,utils,--,scrapy,报错,Scripts,scrapyd
来源: https://blog.csdn.net/qq_24046425/article/details/116094769

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有