当前位置: 首页 > 面试题库 >

导入matplotlib时出现Python Unicode解码错误

东方华荣
2023-03-14
问题内容

我尝试在我的python脚本中使用matplotlib,但在终端中遇到此错误:

Traceback (most recent call last):
  File "graphique.py", line 5, in <module>
    import matplotlib.pyplot as plt
  File "/home/xavier/anaconda/lib/python2.7/site-packages/matplotlib/__init__.py", line 1048, in <module>
    rcParams = rc_params()
  File "/home/xavier/anaconda/lib/python2.7/site-packages/matplotlib/__init__.py", line 897, in rc_params
    fname = matplotlib_fname()
  File "/home/xavier/anaconda/lib/python2.7/site-packages/matplotlib/__init__.py", line 748, in matplotlib_fname
    fname = os.path.join(os.getcwd(), 'matplotlibrc')
  File "/home/xavier/anaconda/lib/python2.7/posixpath.py", line 80, in join
    path += '/' + b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 66: ordinal not in range(128)

这是我的python代码,我只是写了

# -*- coding: utf-8 -*-
import numpy as np
from math import *
import matplotlib.pyplot as plt

我需要做什么?


问题答案:

问题是您当前的工作目录中有一个非ASCII字符。

实际上,这根本不应该是一个问题,但这是由于其他因素的组合:

  • matplotlib想要在当前工作目录中查找matplotlibrc覆盖默认目录的本地文件。
  • Python认为您使用的是C语言环境,而不是Ubuntu 14应该默认使用的漂亮的UTF-8语言环境。

因此,为了快速解决该问题,只需从另一个目录中运行脚本,该目录中没有非ASCII字符。

如果您确实要 解决 问题:

  • 确保您拥有最新的Ubuntu 14,Anaconda和matplotlib。
  • 从外壳,echo $LANG。结果应该为空或其中包含一些东西UTF-8。如果没有,请搜索AskUbuntu以获取解决方法。
  • 确保您的外壳和终端都设置为UTF-8。

从问题的快速搜索中matplotlib,它看起来像#3516,看起来像是在#3594中修复的,我认为应该在matplotlib1.4.1+中。另请参阅#3487。因此,假设您$LANG和终端是正确的,并且您的版本matplotlib是1.4.0或更早版本,则这是最可能的原因,应该对其进行更新(通过conda或(pip或)apt- get或更新Anaconda本身,但是您最初安装了它)才是修复程序。

或者,当然,您可以升级到Python
3,这可能会解决问题,或者为您提供更好的错误消息,告诉您确切的错误。(不过,从扫描问题报告matplotlib中看,似乎1.4.0在Python
3中没有这个确切的错误,仅是Python 2中没有出现这个错误,但是可能有一个相关的错误……)



 类似资料:
  • 我一直在尝试建立一个工作区,以便为Minecraft 1.12.2制作一些基本的mods,为此我一直遵循以下指南:https://codakid.com/guide-to-Minecraft-modding-with-/ 在尝试运行构建时,我遇到了一些问题,但通过遵循以下关于eclipse设置的指南进行了修复:https://techwiseacademy.com/minecraft-moddin

  • 我用“http://www.jhipster.tech/jdl-studio/”创建了一个jdl文件,但当我在jhipster项目中启动import时,我出现了以下错误: 我在jdl Studio中没有错误 这是我的jdl文件 你能给我错误解析吗?我不明白... 我正在使用JHIPSTER4.9.0并使用函数import-jdl 文斯

  • 在空闲的Python 3.7.2中运行import pygame后,现在在Anaconda spyder中尝试,得到完全相同的错误 在终端中,当我运行pip3安装py游戏: 在空闲的Python 3.7.2中运行sys.path之后 所以我猜系统上安装了几个版本的python,pygame在3.7/site-packages中。 如何让 pygame 在 Idle python 3.7.2 中工作

  • 我尝试使用transcrypt将python文件转换为JS,使用命令。在我的python脚本中有一个对JSON的导入: 将目标代码保存在:/home/sarwagya/desktop/hello/target/org.transcrypt.runtime.js将目标代码保存在:/home/sarwagya/desktop/hello/target/re.translate.js将目标代码保存在:/

  • 几个月前,我在电脑上安装了spyder,在我需要绘制一张带有站点图和地形图的地图之前,它一直运行良好。我只是尝试导入matplotlib basemap,但出现以下错误: 文件“ 文件“C:\ProgramData\Anaconda3\lib\site packages\spyder\utils\site\sitecustomize.py”,第710行,在runfile execfile(文件名,