【问题标题】:Scrapy installed, but won't run from the command line已安装 Scrapy,但不会从命令行运行
【发布时间】:2021-11-12 11:32:09
【问题描述】:

我正在尝试在 ubuntu 机器上使用 scrapy 运行我在 python 中编写的抓取程序。 Scrapy 已安装。我可以导入直到 python 没问题,当尝试 pip install scrapy 我得到 ​​p>

要求已经满足(使用 --upgrade 升级):scrapy in /system/linux/lib/python2.7/dist-packages

当我尝试从命令运行 scrapy 时,例如使用 scrapy crawl ...,我得到了。

当前未安装程序“scrapy”。

这里发生了什么?符号链接是否混乱?以及如何解决它的任何想法?

【问题讨论】:

  • 你是不是提前导入了scrapy。
  • 运行 python --versionpython -c "import scrapy"
  • 回复:Aiden,我正在尝试从命令行运行它。我可以将scrapy导入python脚本没问题。回复:亚历克斯,我运行了两个命令,但仍然收到“当前未安装程序 'scrapy'。”

标签: python scrapy


【解决方案1】:

如果不使用 sudo,pip 会安装到 $HOME/.local/bin、$HOME/.local/lib 等。将以下行添加到您的 ~/.bashrc 或 ~/.profile(或其他 shell 的适当位置):

export PATH="${PATH}:${HOME}/.local/bin"

然后打开一个新终端或重新加载.bashrc,它应该会找到该命令。

【讨论】:

  • 这只是临时修复,你应该在 bashrc 中添加这一行 nano ~/.bashrc 然后添加这一行 export PATH="${PATH}:${HOME}/.local/bin" 最后重新启动 bashrc source ~/.bashrc
【解决方案2】:

我有同样的错误。在虚拟环境中运行 scrapy 即可解决。

  1. 创建一个虚拟环境:python3 -m venv env
  2. 激活你的环境:source env/bin/activate
  3. 使用 pip 安装 Scrapy:pip install scrapy
  4. 启动你的爬虫:scrapy crawl your_project_name_here

例如我的项目名称是kitten,我只是在步骤 4 中执行了以下操作 scrapy crawl kitten

注意:我是在运行 Python 3+ 的 Mac OS 上完成的

【讨论】:

  • 谢谢! Scrapy 文档确实应该提到这一点。
【解决方案3】:

我尝试了以下 sudo pip install scrapy ,但是 Ubuntu 16.04 立即建议它已经安装。 我必须先使用sudo pip uninstall scrapy,然后使用sudo pip install scrapy 才能成功安装。 现在你应该可以成功运行scrapy了。

【讨论】:

    【解决方案4】:

    我遇到了同样的问题并使用以下方法解决了。我认为当前用户无法使用scrapy。

    1. 卸载scrapy。

      sudo pip uninstall scrapy

    2. 使用 -H 再次安装 scrapy。

      sudo -H pip install scrapy

    3. 应该可以正常工作。

    【讨论】:

    • -H 是做什么的?
    • sudo pip install scrapy
    【解决方案5】:

    如果你只在 virtualenv 中安装 scrapy,那么你的系统 bin 目录中不存在 scrapy 命令。你可以这样检查:

    $ which scrapy
    

    对我来说它在(因为我 sudo 安装了它):

    /usr/local/bin/scrapy
    

    你可以尝试你的scrapy的完整路径。 例如,如果它安装在 virtualenv 中:

    (env) linux@hero:~dev/myscrapy$ python env/bin/scrapy
    

    注意: We recommend installing Scrapy inside a virtual environment on all platforms.

    【讨论】:

      【解决方案6】:

      我有同样的问题。 sudo pip install scrapy 解决了我的问题,虽然我不知道为什么必须使用 sudo

      【讨论】:

        【解决方案7】:

        确保您激活的命令是 "脚本\activate.bat"

        【讨论】:

          【解决方案8】:

          一个很好的解决方法是使用 pyenv 来管理 python 版本。

          $ brew install pyenv
          
          # Any version 3.6 or above
          $ pyenv install 3.7.3
          $ pyenv global 3.7.3
          
          # Update Environment to reflect correct python version controlled by pyenv
          $ echo -e '\nif command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.zshrc
          
          # Refresh Terminal
          # or source $~/.zshrc
          $ exec $0 
          
          $ which python
          /Users/mbbroberg/.pyenv/shims/python
          $ python -V
          Python 3.7.3
          
          # Install scrapy
          $ pip install scrapy
          $ scrapy --version
          

          参考:

          【讨论】:

            【解决方案9】:

            scrapy crawl 不是你启动scrapy 程序的方式。你从做开始它

            scrapy startproject myprojectname
            

            然后真正启动一个scrapy程序进入myprojectname/spiders然后你可以调用

            scrapy crawl "yourspidername" 
            

            要让scrapy创建一个蜘蛛,你可以cd到你的目录并执行

            scrapy genspider mydomain mydomain.com
            

            另外,你可以通过执行来测试你的scrapy是否真的有效

            scrapy shell "google.com"
            

            所有这些信息都可以在他们的Documentation 中找到。 如果发生了什么事,那么你实际上已经安装了scrapy,并且你正在爬行(哈哈)你的成功之路!

            附: Scrapy 在 Python3 上不能很好地运行,所以如果你在那里运行并且仍然遇到问题,请使用 Python 2.7!

            【讨论】:

              猜你喜欢
              • 2017-01-22
              • 2018-11-11
              • 2013-12-27
              • 2022-10-15
              • 1970-01-01
              • 2020-03-07
              • 2017-04-30
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多