异常处理:Anaconda安装package
- 异常1:PackagesNotFoundError: The following packages are not available from current channels:
- 异常2: RuntimeError: Cython extensions are unavailable. Without them, this gensim functionality is disabled.
- 总结
异常1:PackagesNotFoundError: The following packages are not available from current channels:
conda install X
出现找不到X包问题,如下所示:默认的channels里找不到。
解决方案1:用pip install X
来安装X包,发现可以找到包并下载,然后等待能否successfully。
如果出现一直等待的Installing build dependencies ...
这里应该是缺少Python 依赖,可以尝试添加新镜像:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
之后再试一下能否正常安装X包:Python是否可以import。
如果出现pip的warning:
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
因为pip安装第三方库需要ssl模块,而python默认安装ssl功能是不可用的.
解决方法1-1:针对pip is configured with locations that require TLS/SSL问题:重新编译Python3安装文件,加上--with-ssl参数让pip3使用SSL功能。
# 重新编译安装
./configure --enable-optimizations --with-ssl
注意:可以参考:异常处理pip is configured with locations that require TLS/SSL
解决方法1-2:针对pip is configured with locations that require TLS/SSL问题:更换pip源,即添加国内镜像。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
国内一些常用的软件源如下:
阿里云: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/
注意:添加这个国内镜像,可能会与你已经存在的来自conda-forge的包产生冲突,因为版本不统一,就造成import一个包(来自国内镜像)时,因为需要另几个包(可能来自conda-forge和Anaconda默认镜像)的支持,而引发导入错误,所以还是统一下。
个人还是推崇用default的,虽然下载比较慢,但是版本更新及时且很少有冲突。因为吃过清华源的亏。
如果嫌麻烦,安装了Anaconda的请看解决方案2.
解决方案2:不要终端命令了,直接使用Anaconda Navigator界面Environments里手动添加吧。
如果安装成功,检查下Python里能否import了,如果import不成功,又出幺蛾子了,那就继续修行。可以看异常2了。
异常2: RuntimeError: Cython extensions are unavailable. Without them, this gensim functionality is disabled.
这个是我在安装gensim时出错,这个之前在Windows上就经常安装报错,这次在macOS M1芯片上依旧坑了。
利用miniforge3创建的conda环境(base) [/Users/dan/miniforge3/bin/python]是可以通过pip install gensim安装成功且可以import的。如下所示。
但是在自己创建的虚拟环境(py38)[/Users/dan/miniforge3/envs/py38/bin/python]下就报错了。
Anaconda上显示安装成功,但是import时就不行了。
然后卸了,重新pip install gensim 装下。就出现异常1-1中的warning以及Could not fetch URL https://pypi.org/simple/gensim/。
看起来貌似是证书的错误,后面又好像是URL来源的问题,那就换成国内的pip源试一试。默认的是:
pip install gensim -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
然后就成功了。
然后验证下吧。
有个小warning,根据提示再把这个安装下就好了。
总结
Anaconda安装package过程中出现的问题:
- 第一种,package安装失败:一般先使用conda install来安装,如果失败,就用pip install.一般是defaults里找不到合适的版本,使用pip镜像就能找到。
- 第二种,package安装成功但是无法import:这个可能和虚拟环境、依赖的包、Python设置、pip和pip3等有关系了。比如pip的SSL问题等。需要根据错误提示来操作。