Anaconda的Jupyter导入库时出现WinError 193(已解决)

不才其实在去年使用过一次anaconda做过作业,放假之后就卸载掉了,如今再次使用却遇到如此棘手的问题。本来以为网络上的博客已经够用了,但发现好像并不能解决我的问题。我最终的解决方案也是瞎试出来的。

问题描述

我在PC上安装完Anaconda individual windows 64版本后,新建了一个内置python3.8的新环境,主要是导入numpy、TensorFlow等计算库,但是不管是在prompt里还是jupyter里,运行导入库的命令(比如import numpy),都会出现以下错误:

Anaconda的Jupyter导入库时出现WinError 193(已解决)_第1张图片

解决方法

心路历程

前辈们的经验博客固然多,但我拜读之后仍未解决我的问题。既然是摸爬滚打,不经意间尝试成功的,我就不赘述了,各位可以参考一下。
我静下心来想过,既然是第三方库导入的时候总是失败,但我确确实实是在对应环境下使用了conda install [库名]命令来安装库。所以有可能是jupyter和prompt在import的时候选错了路径
那这个可能就与site-packages所在路径有关了,但是我电脑接触python也有两三年了,前前后后装过7、8次python,很多路径有时又是乱设置的,所以出现路径上的混乱应该是个关键点。

解决步骤

  1. 用以下命令各在prompt和jupyter运行一遍,可以得到一个路径的列表
import sys
sys.path

我电脑上的情况是这样的:

# prompt中运行结果
['',
 'D:\\Anaconda\\python38.zip', 
 'D:\\Anaconda\\DLLs',
 'D:\\Anaconda\\lib',
 'D:\\Anaconda', 
 'C:\\Users\\spankzilla\\AppData\\Roaming\\Python\\Python38\\site-packages', 
 'D:\\Anaconda\\lib\\site-packages', 
 'D:\\Anaconda\\lib\\site-packages\\win32',
 'D:\\Anaconda\\lib\\site-packages\\win32\\lib',
 'D:\\Anaconda\\lib\\site-packages\\Pythonwin']

# jupyter中运行结果
['D:\\Projects\\Jupyter\\data visualization',
 'D:\\Anaconda\\envs\\python3\\python38.zip',
 'D:\\Anaconda\\envs\\python3\\DLLs',
 'D:\\Anaconda\\envs\\python3\\lib',
 'D:\\Anaconda\\envs\\python3',
 '',
 'C:\\Users\\spankzilla\\AppData\\Roaming\\Python\\Python38\\site-packages',
 'D:\\Anaconda\\envs\\python3\\lib\\site-packages',
 'D:\\Anaconda\\envs\\python3\\lib\\site-packages\\win32',
 'D:\\Anaconda\\envs\\python3\\lib\\site-packages\\win32\\lib',
 'D:\\Anaconda\\envs\\python3\\lib\\site-packages\\Pythonwin',
 'D:\\Anaconda\\envs\\python3\\lib\\site-packages\\IPython\\extensions',
 'C:\\Users\\spankzilla\\.ipython']
  1. 观察路径列表,作出修改
# 注意到一个奇怪的不应该存在的路径:'C:\\Users\\spankzilla\\AppData\\Roaming\\Python\\Python38\\site-packages'
# 很可能就是因为先从这个路径下去导入库,才导致问题出现
# 各在prompt和jupyter里运行以下命令,把类似这种的令给删除掉
sys.path.remove('C:\\Users\\spankzilla\\AppData\\Roaming\\Python\\Python38\\site-packages')
  1. 重新运行导入库的命令
import numpy  # 尝试自己出问题的库名即可,不一定是numpy

反正我到此我的问题就解决了,系统也不再报错[WinError 193]了。

  1. 一波又起
    本以为一劳永逸了,才发现真的只是碰巧解决了,并没有找到问题所在。这不,我今天在下载paddle这个框架的时候,本来想在anaconda里建立一个新环境来管理它,发现又有这个问题。
    Anaconda的Jupyter导入库时出现WinError 193(已解决)_第2张图片

想法:Numpy版本或其他东西存在不兼容,其实说起来逻辑也是有的,在报错信息中,出现了import numpy as np这条命令
解决方法:比如numpy是1.18.3 卸载升级为1.18.4解决的问题pip install --upgrade numpy
Anaconda的Jupyter导入库时出现WinError 193(已解决)_第3张图片

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
paddlepaddle 2.0.1 requires numpy<=1.19.3,>=1.13; python_version >= "3.5" and platform_system == "Windows", but you have numpy 1.20.1 which is incompatible.

我在upgrade库numpy时,丢出的error信息果然再次验证了以上猜想。于是,再精准卸载安装对应的numpy版本

pip uninstall numpy
pip install numpy==1.19.0

问题解决。

总结

从表面看是site-packages路径上包含了不该包含的文件路径,但是sys.path.remove(“…”)只是在一次编译起作用。所以一劳永逸的方法应该是把出问题的site-packages路径里的第三方库全部升级到新版本,以此解决不兼容的问题。

你可能感兴趣的:(#,踩坑,anaconda)