2020.05 CMD中conda&python报warning 记录

CMD中conda&python报warning 记录

起因

今天心血来潮, 想把几年前搭建的Win10下的Anaconda3+pycharm+Tensorflow-gpu的环境更新一下, 刚刚安完了 anaconda, 准备用conda一键安装 Tensorflow2-gpu(以前自己安装CUDA+CUDnn版本一点点对不上就用不了 tf 的QwQ, 现在conda方便太多).
我就试试输入python, 结果报了 2 个常见 Warning.

Warning.1:
This Python interpreter is in a conda environment, but the environment ha not been activated. Libraries may fail to load. To activate this environmen please see https://conda.io/activation

Warning.2:
$ python
Python 3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type “help”, “copyright”, “credits” or “license” for more information.
Failed calling sys.interactivehook
Traceback (most recent call last):
File “C:\Anaconda3\lib\site.py”, line 439, in register_readlinreadline.read_history_file(history)
File “C:\Anaconda3\lib\site-packages\pyreadline\rlmain.py”, line 165, in read_history_file self.mode._history.read_history_file(filename)
File “C:\Anaconda3\lib\site-packages\pyreadline\lineeditor\history.py”, line 82, in read_history_file
for line in open(filename, ‘r’):
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa8 in position 388: illegal multibyte sequence
>>>

Warning 1

在最初的 cmd 里面执行命令 conda info 可以发现如下信息:

λ conda info
active environment : None
shell level : 0
…blahblah…

然后输入命令activate base (base 是 anaconda 的基本环境), 可以发现输出变了:

λ conda info
active environment : base
active env location : C:\Anaconda3
shell level : 1
user config file : C:\Users\leonrein.condarc
…blahblah…

发现了吧, 新版 anaconda 并没有像以前或 Ubuntu 内那样自动激活 base 环境.
解决方案(欢迎补充):

  1. 每次手动activate base一下再用命令行的 python
  2. 使用 Anaconda3 安装时自带的 Anaconda Prompt, 这个命令行自动激活 base, 在 Windows 开始菜单搜一下就有的.
  3. 也是我的方案, 我用的是 cmder 代替的普通 cmd. 在 Settings->Startup->Environment 里面, 添加别名即可:

    alias python=activate base && python

Warning 2

参考了一遍各种网页, 提供一下方案:

  1. 不影响, 除了难看一点点hhh, 多敲几行命令/代码就被顶上去看不见了.

  2. (推荐)很可能是由于是读某个文件,有编码问题. 根据 Warning 内容, 打开 history.py 这个文件, 我的是

    C:\Anaconda3\lib\site-packages\pyreadline\lineeditor\history.py

    在原有的第 82 行 open 函数里新增一个参数选项 encoding='utf-8' 即改为:

    for line in open(filename, ‘r’,encoding=‘utf-8’):

  3. 在 C:\user\username\ 下, 删除以前的残留文件:.python_history 即可.我看了一下, 里面有一些中文. 不过我试了一下, 如果以后 python 命令行中又有中文, 下一次执行 python 还是会报 Warning. 唉, 估计是 py 默认的 utf-8 和 windows 在 cmd 内默认的 gbk 冲突吧.

主要参考

1. https://blog.csdn.net/fjnuzs/article/details/99850229

2. https://blog.csdn.net/zxmyoung/article/details/105327855

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值