明明install了,import告诉我没有这个module?
不管怎么pip install都报错,装都装不上TMD烦死了!
怎么会有两个重复的包?
每次conda/pip下载慢的要命
上面这些问题,不碰到的时候开开心心写代码,一碰到半天时间和心情就被毁了。本文面向mac/linux,说下各种问题可能的原因,具体方法谷歌/知乎/csdn都能关键词查到。
下载不了包
最常见的问题就是下载不了包(具体原因能骂个两天两页,咱也不敢说,咱也不敢问),方法是切换pip/conda源到 清华源(Tsinghua Open Source Mirror) 或者阿里云源 (http://mirrors.aliyun.com/pypi/simple/)。
[删] 我是更喜欢阿里云源的,感觉清华源还是不那么稳定(也可能是在包邮区的原因?或者阿里有钱设备好?)
2023年[更]:现在aliyun源限速~200kb/s了,像torch tf这种大型包猴年马月……现在更推荐清华源。此外,如果还有其他实验室同学,并且学有余力的话,可以自建本地镜像,可以节省很多时间。
Install 报错 激 寒 大 红 字
但有时候自己网络慢,换了源也断,那可以在pip里设置timeout。不过还是建议优先保证网速,因为安装中断会引发另一个问题:有一些包虽然损坏了,但也会在这两个路径中创建文件夹
conda路径/envs/环境名/lib/python3.x/site-packages/包名/
home路径/.local/lib/python3.x/site-packages/包名而pip install时发现文件不完整,就会抛一堆红字错误,大概就是说xxx包有问题。这时删除site-ackages里面那个包的文件夹,还要删除pip下载的缓存文件。
rm -r PATH_TO_LIB/python3.x/site-packages/包名
rm -r home路径/.cache/pip然后重新install,一般来说就正常了。另外,我图省事,只用conda来设置/切换环境,在环境中安装都是用pip,一是因为conda安装,总要连带一系列其他包的升级降级安装,二是等分析依赖的进度条也很慢,三是有遇到过同一个包在pip和conda最新版本不一致。所以索性都用pip,安装卸载都快。依赖就看情况 install 和 uninstall。
装了也import不了
一般来说,都是因为用错了python/ipython/jupyter。检查方式就是
which pip/ipython/jupyter (windows里是where)来查看程序真正的位置。在一个conda环境中,上述命令输出的结果应该是这个格式
conda路径/envs/环境名/lib/bin/包名而不是其他环境,或者/usr/.local/等这种无关文件夹。也就是说,需要保证你在当前环境下安装包,并用同一环境下的ipython/jupyter,在其中import才能生效。
反之,例如你在环境 myenv 中安装了 torch,然后一通熟练操作打开 jupyter,输入 import torch,结果告诉你找不到 module 'torch'。这时,快去输入 which jupyter 查看是不是调错啦?是不是调用了 base 环境的 jupyter。如果确实是这样,那就还需要 myenv 环境中再安装一遍 jupyter(ipython或者python出问题了解决方案同理)。
本来碰到这些问题,是因为要装tensorflow/keras,就算解决了conda本身,这俩也是大麻烦。所以解决了上述问题后,我反手一个 pip install torch。
其实配置好并且熟悉conda后,问题会变得更加容易。但是本人水平有限,对上述报错原因的解释也有可能是错误的。希望大神们多多指教。