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