Env
问题¶
听说Anaconda很好用, 但是更新了2020.11版本后启动python总是报一些警告, 比如在powershell里启动Python的时候:
Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated. Libraries may fail to load. To activate this environment
please see https://conda.io/activation
所以conda环境是啥?
还有就是用pip安装需要的包的时候会被告知"目录没有写权限", 这是为啥?
总而言之, 都是conda环境的原因.
首先, 需要在powershell里启用conda环境:
conda init powershell
此时powershell提示符从PS E:\>变成了(base) PS E:\>, 这说明我们成功进入了conda的base环境. 此时再启动Python就没有警告了.
但是, 在输入conda install tensorflow之后又报了一个inconsistent错误, 大意是tensorflow及其依赖包与现有环境中的 4 个包不相容, 这就需要一个全新的conda环境,
不急, 先把镜像配上, 省得下载速度把自己感动到脱发, 具体操作见https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
conda clean -i
重启shell, 键入以下命令生成新的conda环境
conda create -n tensorflow python=3.8 tensorflow
conda会在安装目录下生成envs\tensorflow目录并开始下载python并安装TensorFlow及各项依赖. 注意这里的前一个tensorflow只是一个环境名, 后一个tensorflow才是真正要装的包. 如果你正确配置了镜像的话下载应该是很快的. 如果conda下载速度很慢, 请花些时间检查一下镜像配得对不对, 会给你省很多等待的时间和失败的次数.
不要把python版本设得太高, 也不要用python 2.x了.
注意这里又是一个大坑, 如果在安装Anaconda的时候勾选了了Add to PATH选项, 现在conda就不会正常工作了. 具体说来, Add to PATH向PATH中添加的是base环境的包, 而当使用conda activate tensorflow切换到tensorflow环境之后使用python命令, 优先解析PATH中的python(即Anaconda目录下的亦即base环境中的python) 而不是tensorflow环境下的python, 此时, 如果base里没有tensorflow, 那么import tensorflow就会找不到module, 这就是开头的警告产生的原因.
接下来再在新环境中安装一些开发用的包吧.
conda install jupyterlab spyder
最后, 尽善尽美, 让powershell一打开就进入tensorflow环境:
echo "conda activate tensorflow" >> $profile
总结:
- 每次操作都要重启
shell以使操作生效.
此外:
-
可以考虑
Miniconda, 毕竟Anaconda里有那么多包用不上, 而且换个环境还要重新装包. 不过Miniconda推荐给有经验的同学. -
conda想重命名环境, 怎么办?
conda create --name newname --clone oldname
conda remove --name oldname --all