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