1.引子-噩梦的开始
事情要从升级了Tensorflow1.12.0(此时最新版)开始说起,为了跑一个github的上程序,将Tensorflow升级了,也是噩梦的开始。不是这个包少,就是那个方法出错。结果github上的程序仍然没有跑通,无奈,为了使其他程序依然能正常运行,还是把Tensorflow的版本降下来吧。幸亏在升级Tensorflow之前查了一眼原来的版本,1.10.0。直接 pip install tensorflow==1.10.0
如果有那么简单,就不会有这篇文章了...
2.Tensorflow 降级后的numpy问题
在Tensorflow升级时,顺带把一些其他的依赖包也升级了,比如numpy.但降级的时候一些库的版本没有降下来,这就造成有些程序的报错。想再把numpy卸载重装,pip uninstall numpy
但新的问题又来了,PermissionError: [WinError 5] 拒绝访问。
权限不够,不能直接加--user
,如pip uninstall --user numpy
。解决方案为pip install --user numpy==版本号
。这是我目前能想到降级numpy的方案,可能不是最好的,但是有效。
3.换个环境
早就知道Anaconda可以管理好多个环境,由于原来一直没有这方面的需求,电脑上的python-base环境加一个pip几乎能解决所有问题,但现在看来不得不再添加其他的环境了。
4.正文开始
主要看关注三个方框中的内容。
左边一个红方框内的四个目录,后两个就不再介绍了自己点进去就知道什么意思了。主要说一下前两个。
-
Home 中的这8个方框,每个方框可以理解为一个软件,图中我安装了上面的四个,Launch可以直接打开。下面的四个我没有安装。 还有一个注意点:如下图红色框内
表示这四个app 是在base(root)下的。这是什么意思呢?继续往下看。
- Environments 此处是重点。
这表示红色框内有三个环境
- base(root)
- t1100k224
- test-env
第一个就是我们常用的环境。2,3是我新建的,绿色方框内有四个选项,新建、克隆、导入、移除。看名字就知道其作用是什么了。
新建一个环境后会有一些基础的包,比如python、pip 等。
打开任意一个环境可以做一些操作:
一些基本的命令如下:
conda install lib_name #安装库
conda unistall lib_name#卸载库
conda list #列出所有安装的库
activate your_env_name #激活环境
当然还有其他的一些操作就自己去发现了,这里只是一些基本的操作。
比如我想用
python3.6.5
Tensorflow1.10.0
Keras2.2.4
直接conda install python==3.6.5 Tensorflow==1.10.0 Keras==2.2.4即可
我的t1100k224这个环境就是tensorflow1.10.0和keras2.2.4,当然环境的名字可以任意定义,只要自己明白记住即可。
5.环境与编译器的关联
写python最好用的编译器是什么?
spyder?pycharm?jupyter?
这里不会去比较这三者孰优孰劣,三个我都用,三者各有千秋。
-
首先说pycharm吧,pycharm与这里的环境的关联最简单,也最容易想到。设置里面
选择环境所在的路径的python.exe即可。
这里切换环境也非常随意。 - spyder 呢?
也去找这个路径吗?
就是这个让我忙了一下午。一把辛酸泪。
Don't call me,I call you!
再来看一张图:
Applications on t1100k224 在这个环境下的软件。
没错这两是我新装的。
看一下,每一个环境,你要用spyder的时候,都得为这个环境装一个spyder 软件。
知道真相的我眼泪掉下来。
为什么不能像pycharm一样直接换环境就好了呢?难道说是为了下载量?
哭o(╥﹏╥)o
6.一个问题
ImportError:
Importing the multiarray numpy extension module failed. Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, trygit clean -xdf
(removes all
files not under version control). Otherwise reinstall numpy.
Original error was: DLL load failed: 找不到指定的程序。
当你遇到这个问题的时候,就是spyder与环境不匹配造成的,在你的环境下安装一个特定的spyder吧。我baidu、google了一下午这个问题,没有一个能解答的,自己摸索了一下午,终于把这个坑给填上了。
好了,就写到这吧!不知所云。轻喷,轻喷。
我去给问这个错误的小伙伴解答一下去,估计也是抓耳挠腮!
2018年11月29日V1