Python 库的安装及使用 常见错误异常及解决办法

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 代码如下

1.包导入错误ModuleNotFoundError: No module named ‘sklearn.cross_validation’

错误:

from sklearn.cross_validation import train_test_split
ModuleNotFoundError: No module named 'sklearn.cross_validation'

解决办法:

改为

from sklearn.model_selection import train_test_split

2.Django安装报错

直接用pip install django命令安装可能会报错,用下面的命令就不会报错了:

pip  install  django -i  https://pypi.doubanio.com/simple/

pip install xxx -i xxx是通过镜像源安装,更换国内源。很多时候安装第三方包会面临下载速度慢,甚至无法下载的尴尬,这时,配置一个国内源极其重要,通过这种方式会加快下载安装相关包的速度,很多常见的包安装错误都可以通过这种方式解决。

常用的镜像源有

阿里云
    http://mirrors.aliyun.com/pypi/simple/
中国科技大学
    https://pypi.mirrors.ustc.edu.cn/simple/ 
豆瓣
    http://pypi.douban.com/simple/ 
清华大学
    https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学
    http://pypi.mirrors.ustc.edu.cn/simple/

如,

pip install xxx -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

3.DeprecationWarning: Using or importing the ABCs from ‘collections’ instead of from ‘collections.abc’

使用from collections import Iterable时,会有警告

 DeprecationWarning: 
 Using or importing the ABCs from 'collections' 
 instead of from 'collections.abc' is deprecated,
 and in 3.8 it willstop working 

意思是:

弃用警告:从collections中导入ABCs已被弃用,并在python3.8中将停止工作,可使用collections.abc代替它进行使用

解决办法:

collections替换为collections.abc即可:

# from collections import Iterable
from collections.abc import Iterable
print(isinstance('abc', Iterable))

4.virtualenvwrapper安装后执行workon命令出现异常

在安装虚拟环境管理工具virtualenvwrapper之后,再执行workon命令查看创建的虚拟环境,报错如下:

'workon' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

这可能是因为在安装virtualenvwrapper时使用的命令是pip install virtualenvwrapper,而这是Python2中的用法,在Python3中安装需要使用命令pip install virtualenvwrapper-win安装,此时再执行workon命令会打印:

Pass a name to activate one of the following virtualenvs:                       
==============================================================================  
找不到文件                                                                           

即安装成功。

5.安装mysqlclient时报错Microsoft Visual C++ 14.0 is required

在Django等项目中可能需要用到mysqlclient作为数据库引擎,但是在直接通过命令安装的时候可能会报错如下:

    ERROR: Command errored out with exit status 1:
     command: 'XXX\.virtualenvs\Django_Vue_Fresh_Ecommerce-NKba4OvD\Scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'XXX\\AppData\\Local\\Temp\\pip-install-mu3pnz6j\\mysqlclient\\setup.py'"'"'; __file__='"'"'XXX\\AppData\\Local\\Temp\\pip-install-mu3pnz6j\\mysqlclien
t\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec
'"'"'))' install --record 'XXX\AppData\Local\Temp\pip-record-l1qvs6be\install-record.txt' --single-version-externally-managed --compile --install-headers 'XXX\.virtualenvs\Django_Vue_Fresh_Ecommerce-NKba4OvD\include\site\python3.8\mysqlclient'
         cwd: XXX\AppData\Local\Temp\pip-install-mu3pnz6j\mysqlclient\
    Complete output (23 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.8
    creating build\lib.win32-3.8\MySQLdb
    copying MySQLdb\__init__.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\_exceptions.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\connections.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\converters.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\cursors.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\release.py -> build\lib.win32-3.8\MySQLdb
    copying MySQLdb\times.py -> build\lib.win32-3.8\MySQLdb
    creating build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\__init__.py -> build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\CLIENT.py -> build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\CR.py -> build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\ER.py -> build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win32-3.8\MySQLdb\constants
    copying MySQLdb\constants\FLAG.py -> build\lib.win32-3.8\MySQLdb\constants
    running build_ext
    building 'MySQLdb._mysql' extension
    error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'XXX\.virtualenvs\Django_Vue_Fresh_Ecommerce-NKba4OvD\Scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'XXX\\AppData\\Local\\Temp\\pip-installmu3pnz6j\\mysqlclient\\setup.py'"'"'; __file__='"'"'XXX\\AppData\\Local\\Temp\
\pip-install-mu3pnz6j\\mysqlclient\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'XXX\AppData\Local\Temp\pip-record-l1qvs6be\install-record.txt' --single-version-externally-managed --compile --install-headers 'XXX\.virtualenvs\Django_Vue_Fresh_Ecommerce-NKba4OvD\include\site\python3.8\mysqlclient' Check the logs for full command output.

这可能是因为Python的版本较新,pip未同步更新等,可以手动下载安装文件再安装。

6.通过pip安装库时报错"python setup.py egg_info" failed with error code 1 in /tmp/pip-build-xxx/xxx

在使用pip安装Python库时报错Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-xxx/xxx,这是因为pip版本较低,需要对pip进行升级,直接执行pip install --upgrade pip或者pip3 install --upgrade pip即可,然后再安装库就不会报错了。

7.CentOS安装pip3报错ModuleNotFoundError: No module named '_ctypes'

CentOS上安装pip3,在执行python3 setup.py install报错ModuleNotFoundError: No module named '_ctypes',这是因为缺少依赖包libffi-devel,需要先安装该包再重新编译安装pip3,如下:

# 安装依赖包
yum -y install libffi-devel
# 编译源码
make
# 重新执行安装
make altinstall 

8.安装virtualenvwrapper后,提示’workon’ 不是内部或外部命令

有可能在安装的时候,使用的是pip install virtualenvwrapper命令,而这是在Python2中的写法,我们应该使用Python3中的写法,即通过pip install virtualenvwrapper-win安装,就可以正常使用workon命令了。

9.电脑存在多个Python版本时,安装库不能安装到需要的版本下

有时候,电脑上会安装多个版本的Python,比如Python2.7、Python3.6、Python3.8,一般会有一个默认的安装Python库的版本,一般是添加哪一个版本到环境变量或哪一个在环境变量列表的前面,pip安装时就会选择安装到哪一个版本。

如果想要安装到指定版本的Python,则需要使用一个较长的命令,为py -version -m pip install xxx,例如py -3.6 -m pip install pandas,就可以将pandas库安装到Python3.6下。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
人工智能 算法 Python
【随手记】python的heapq库的基本用法
【随手记】python的heapq库的基本用法
17 1
|
1天前
|
监控 搜索推荐 UED
用Python的pynput库追踪每一次点击和滚动
使用Python的`pynput`库可监听鼠标活动,包括点击和滚动事件。安装`pynput`后,通过`mouse.Listener`捕获鼠标事件。示例代码展示如何记录点击位置、滚动方向,并创建日志文件。通过类封装,可控制记录器的启停,并实现特定模式下的响应,如快速三连击左键自动打开网站。动手实践,将理论转化为实用工具。
|
1天前
|
XML 数据格式 Python
Python模块导入包括:`import math`导入标准库
【6月更文挑战第23天】Python模块导入包括:`import math`导入标准库,`from math import sqrt`导入单个函数,`import numpy as np`给模块取别名,`from random import *`导入所有(不推荐),`import xml.etree.ElementTree as ET`导入子模块,`import_module('pandas')`按需导入,和使用相对路径如`from .module import func`处理项目结构。记得调整`sys.path`以包含自定义模块路径。
12 4
|
2天前
|
数据采集 机器学习/深度学习 数据可视化
利用Python和Pandas库构建高效的数据分析流程
在数据驱动的时代,数据分析已成为企业决策的关键环节。本文介绍如何利用Python编程语言及其强大的数据分析库Pandas,构建一套高效且可扩展的数据分析流程。与常规的数据分析流程不同,本文不仅涵盖数据加载、清洗、转换等基础步骤,还强调数据可视化、模型探索与评估等高级分析技巧,并通过实际案例展示如何在Python中实现这些步骤,为数据分析师提供一套完整的数据分析解决方案。
|
5天前
|
编译器 索引 Python
Python常见异常类型说明及触发代码示例
开发过程中需要根据具体情况选择处理异常,并使用try-except语句来捕获并处理异常,从而保证程序的健壮性和稳定性。在Python中,异常是程序执行期间发生的错误或意外情况。当解释器遇到异常时,会停止程序的正常执行,并在控制台输出异常的相关信息。Python中有许多不同的异常类型,每个异常类型表示不同的错误或意外情况。OSError:操作系统产生的异常(例如打开一个不存在的文件)。AttributeError:尝试访问一个对象没有的属性。UnicodeError:Unicode相关的异常。
13 5
|
5天前
|
存储 开发者 C++
Python教程:Python安装目录说明
在 Python 开发中,深入了解 Python 的安装目录结构对于开发者来说是至关重要的。本文以Python 3.8.6为例,详细介绍 Python 的安装目录结构、各个子目录和文件的作用。
28 4
|
3天前
|
开发框架 Python
Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。
【6月更文挑战第21天】Python的`pygame`库用于2D游戏开发,涵盖图形、音频和输入处理。要开始,先通过`pip install pygame`安装。基本流程包括:初始化窗口、处理事件循环、添加游戏元素(如玩家和敌人)、响应用户输入、更新游戏状态及结束条件。随着项目发展,可逐步增加复杂性。
6 1
|
5天前
|
Python
Python中使用os库管理环境变量
在Python中,可以使用os库来管理操作系统的环境变量。通过os.environ对象,我们可以获取、修改和删除环境变量的值。
14 3
|
5天前
|
存储 JSON JavaScript
Python教程:一文了解Python中的json库
JSON(JavaScript Object Notation)是一种轻量级数据交换格式,易于人类阅读和编写,也易于计算机解析和生成。在Python中,JSON通常用于数据交换和存储,因为它与Python的字典和列表类型相似。
23 2