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

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

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下。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
2月前
|
Linux 计算机视觉 C++
【解决方案】Building wheel for opencv-python:安装卡顿的原因与解决方案
当你安装OpenCV时,命令行停在Building wheel for opencv-python (PEP 517) ... -似乎卡住了。这并非程序假死,而是其编译耗时巨大。本文将揭示原因,并提供优化安装体验的实用方法。
359 88
|
2月前
|
存储 Web App开发 前端开发
Python + Requests库爬取动态Ajax分页数据
Python + Requests库爬取动态Ajax分页数据
|
2月前
|
JSON 网络安全 数据格式
Python网络请求库requests使用详述
总结来说,`requests`库非常适用于需要快速、简易、可靠进行HTTP请求的应用场景,它的简洁性让开发者避免繁琐的网络代码而专注于交互逻辑本身。通过上述方式,你可以利用 `requests`处理大部分常见的HTTP请求需求。
239 51
|
1月前
|
数据采集 存储 Web App开发
Python爬虫库性能与选型实战指南:从需求到落地的全链路解析
本文深入解析Python爬虫库的性能与选型策略,涵盖需求分析、技术评估与实战案例,助你构建高效稳定的数据采集系统。
170 0
|
2月前
|
存储 监控 安全
Python剪贴板监控实战:clipboard-monitor库的深度解析与扩展应用
本文介绍如何利用Python的clipboard-monitor库实现剪贴板监控系统,涵盖文本与图片的实时监听、防重复存储、GUI界面开发及数据加密等核心技术,适用于安全审计与自动化办公场景。
67 0
|
3月前
|
JSON 数据格式 Python
解决Python requests库POST请求参数顺序问题的方法。
总之,想要在Python的requests库里保持POST参数顺序,你要像捋顺头发一样捋顺它们,在向服务器炫耀你那有条不紊的数据前。抓紧手中的 `OrderedDict`与 `json`这两把钥匙,就能向服务端展示你的请求参数就像经过高端配置的快递包裹,里面的商品摆放井井有条,任何时候开箱都是一种享受。
80 10
|
4月前
|
人工智能 C# Python
处理python异常
本文介绍了Python中的异常处理机制,并实现了一个简单的异常装饰器。通过`try/except`语句捕获异常,结合`finally`子句完成清理工作。为进一步优化代码结构,文章提出了使用装饰器处理异常的方法,避免函数中大量冗长的异常处理语句。通过类封装异常装饰器,多个函数可共享异常处理逻辑,提升代码简洁性和可维护性。总结强调了装饰器在异常处理中的优势,使代码更加优雅高效。
105 27
|
3月前
|
XML JSON 安全
分析参数顺序对Python requests库进行POST请求的影响。
最后,尽管理论上参数顺序对POST请求没影响,但编写代码时仍然建议遵循一定的顺序和规范,比如URL总是放在第一位,随后是data或json,最后是headers,这样可以提高代码的可读性和维护性。在处理复杂的请求时,一致的参数顺序有助于调试和团队协作。
118 9

热门文章

最新文章

推荐镜像

更多