【问题标题】:Scrapy commandline tool not installed by pippip 未安装 Scrapy 命令行工具
【发布时间】:2017-04-30 12:39:54
【问题描述】:

我通过sudo pip install scrapy 安装了scrapy。它将python模块安装到站点包中,我可以在我的python环境中导入scrapy。但是,尝试使用命令行工具会引发错误:

scrapy startproject demo

有错误The program 'scrapy' is not currently installed. 并告诉我安装 python-scrapy。

whereis scrapy 没有输出。厌倦了试图追踪安装路径,所以我运行了find -name "*crap*",它也没有任何用处。看来命令行工具不是由 pip 安装的。这个 pip 安装我缺少什么?

【问题讨论】:

    标签: python command-line path scrapy pip


    【解决方案1】:

    问题是sudo pip install scrapy将scrapy安装在当前用户无法访问的目录中,如果你不是root的话。

    您需要先删除scrapy sudo pip uninstall scrapy,然后使用-H sudo 标志sudo -H pip install scrapy 重新安装,这样您的命令行才能检测到scrapy 安装。

    【讨论】:

    • 对我有用
    【解决方案2】:

    这也没有回答问题为什么scrapy 命令行工具不可用,但如果你评论时可以导入scrapy,你可以使用:

    $ python -m scrapy.cmdline version -v
    $ python -m scrapy.cmdline shell <url>
    

    scrapy 实际上是这个的别名,正如Scrapy's setup.py entry_points 部分中所指定的,应该由pip install 设置。

    【讨论】:

    • 在这里操作。我刚刚用 pip 安装了 shub,一个网络抓取工具。同样的问题。不得不写另一个脚本。
    • 这是一个很好的解决方案,所以我决定更进一步。我编辑了我的 ~/.zshrc(对你来说可能是 ~/.bashrc),并添加了以下行: alias scrapy="python -m scrapy.cmdline"
    【解决方案3】:

    你的机器上没有安装 Scrapy。如果你想先安装运行这些命令用来在你的系统上安装 python-dev

    sudo apt-get install build-essential libssl-dev libffi-dev python-dev libxml2-dev
    

    在这些命令之前你应该运行升级命令

    sudo apt-get update
    

    sudo apt-get upgrade
    

    在这些运行之后

    pip install scrapy
    

    当它完成运行后检查是否安装了scrapy

    scrapy version
    

    如果版本提示你安装scrapy成功。

    【讨论】:

    • 重点是已经安装好了。它只是缺少命令行工具的脚本。 scrapy 是完全可导入的,等等。
    【解决方案4】:

    验证你是否有这些包:

    w3lib, cssselect, parsel, attrs, pyasn1-modules, service-identity, PyDispatcher, queuelib, zope.interface, constantly, incremental, Twisted, scrapy

    我用过:

    $ pip install scrapy

    在 ubuntu 16.04 上,所有这些软件包都是由它安装的。在此之后我尝试了:

    $ scrapy startproject demo

    这个输出对我有用:

    New Scrapy project 'demo', using template directory '/home/*machine_name*/anaconda2/lib/python2.7/site-packages/scrapy/templates/project', created in:
        /home/*machine_name*/demo
    
    You can start your first spider with:
        cd demo
        scrapy genspider example example.com
    

    【讨论】:

      【解决方案5】:

      这并没有回答 pip 安装有什么问题的问题,但是对于任何有工作的 scrapy 包但没有功能的命令行命令的人,您可以创建一个脚本来为您运行 scrapy 命令行工具:

      #! /usr/bin/python2.7
      # path to python 2.7 (python 3 doesn't work well with scrapy atm)
      import sys
      import scrapy.cmdline
      
      sys.exit(scrapy.cmdline.execute())
      

      保存在 $PATH 某处名为 scrapy 的文件中(具有执行权限)。

      【讨论】:

        猜你喜欢
        • 2013-10-15
        • 1970-01-01
        • 2016-08-10
        • 2019-03-02
        • 1970-01-01
        • 1970-01-01
        • 2014-01-16
        • 2015-10-15
        • 2012-03-08
        相关资源
        最近更新 更多