Python安装Scrapy库的常见报错解决

 更新时间:2023年11月03日 08:59:53   作者:Myon⁶  
本文主要介绍了Python安装Scrapy库的常见报错解决,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

由于Scrapy该库在Windows下会存在兼容问题,下面介绍的是在Linux系统进行安装。

1、关于pip3命令的报错

报错代码:

error: externally-managed-environment
 
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.11/README.venv for more information.
 
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

解决方法:在原有命令后面追加参数  --break-system-packages

因为scrapy可以直接当做命令使用,所以我们也可以在终端输入不存在的命令,它会提示你安装

有时候pip3不行,我们也可以换pipx,或者apt install python3-文件名来进行安装

pipx install scrapy

apt install python3-scrapy

2、执行scrapy报错(Python3下的OpenSSL模块出错)

报错代码:

Traceback (most recent call last):
  File "/usr/bin/scrapy", line 33, in <module>
    sys.exit(load_entry_point('Scrapy==2.10.0', 'console_scripts', 'scrapy')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/scrapy", line 25, in importlib_load_entry_point
    return next(matches).load()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/metadata/__init__.py", line 202, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1128, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
   ...
 AttributeError: module 'lib' has no attribute 'SSL_CTX_set_ecdh_auto'

这个是Python3下的OpenSSL模块出错,我们需要卸载它并重装

解决方法:

pip3 uninstall pyopensslpip3 install pyopenssl

 尝试了一些命令发现不行

3、卸载pyopenssl时报错

报错代码:

Found existing installation: pyOpenSSL 21.0.0
Not uninstalling pyopenssl at /usr/lib/python3/dist-packages, outside environment /usr
Can't uninstall 'pyOpenSSL'. No files were found to uninstall.
Requirement already satisfied: pyopenssl in /usr/lib/python3/dist-packages (21.0.0)

解决办法:

找到该文件夹所在路径,直接将pyOpenSSL-21.0.0目录删掉,再重新安装

该文件夹在 /usr/lib/python3/dist-packages/ 下面

删掉整个文件夹

重新使用命令安装pyopenssl

pip3 install pyopenssl --break-system-packages

安装成功后输入scrapy命令

如下图,则代表该库已安装成功

我们也可以进入ipython3进行验证:

ipython是一个python的交互式shell,比默认的python shell好用很多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数

只要可以成功导入该库,没有报错,证明已经安装成功

到此这篇关于Python安装Scrapy库的常见报错解决的文章就介绍到这了,更多相关Python安装Scrapy报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 8段用于数据清洗Python代码(小结)

    8段用于数据清洗Python代码(小结)

    这篇文章主要介绍了8段用于数据清洗Python代码(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • python3学习之Splash的安装与实例教程

    python3学习之Splash的安装与实例教程

    splash 是一个python语言编写的用于配合scrapy解析js的库,下面这篇文章主要给大家介绍了关于python3学习之Splash的安装与使用的一些相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-07-07
  • 深入解析Python中的多进程

    深入解析Python中的多进程

    这篇文章主要介绍了深入解析Python中的多进程,“Python中的多进程是通过multiprocessing包来实现的,和多线程的threading.Thread差不多,它可以利用multiprocessing.Process对象来创建一个进程对象
    2022-06-06
  • 深入探讨Python中的内置类属性`__repr__`

    深入探讨Python中的内置类属性`__repr__`

    在Python中,__repr__是一个特殊的内置类属性,用于定义类的字符串表示形式,本文将深入探讨__repr__的作用、用法以及一些实际应用场景,希望对大家有所帮助
    2023-12-12
  • Python方法的延迟加载的示例代码

    Python方法的延迟加载的示例代码

    本篇文章主要介绍了Python方法的延迟加载的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 从零学python系列之从文件读取和保存数据

    从零学python系列之从文件读取和保存数据

    在Python一般都是运用内置函数open()与文件进行交互,下面说说具体用法
    2014-05-05
  • Python使用Traits库实现对象属性

    Python使用Traits库实现对象属性

    Python作为一种动态编程语言,它的变量没有类型,这种灵活性给快速开发带来很多便利,不过它也不是没有缺点,Traits库的一个很重要的目的就是为了解决这些缺点所带来的问题,trait为Python对象的属性增加了类型定义的功能
    2023-11-11
  • Python基础练习之用户登录实现代码分享

    Python基础练习之用户登录实现代码分享

    这篇文章主要介绍了Python基础练习之用户登录实现代码分享,还是比较不错的,这里分享给大家,供需要的朋友参考。
    2017-11-11
  • python面向对象多线程爬虫爬取搜狐页面的实例代码

    python面向对象多线程爬虫爬取搜狐页面的实例代码

    这篇文章主要介绍了python面向对象多线程爬虫爬取搜狐页面的实例代码,需要的朋友可以参考下
    2018-05-05
  • 使用Python读取.nc文件的方法详解

    使用Python读取.nc文件的方法详解

    .nc文件,即NetCDF(Network Common Data Form)文件,是一种用于存储科学数据的文件格式,本文主要为大家介绍了两种常见的读取方法,希望对大家有所帮助
    2024-03-03

最新评论