Ubuntu系统中运行文件(.py)时遇到的编码问题解决方法

# 创作灵感 #

  • 学习经验分享、笔记记录、过程性学习记录
  • 使用一块Jetson xavier NX 开发板进行深度学习、训练部署等(烧录ubuntu 20.04系统),配置pytorch环境时,运行测试代码报错遇编码问题,解决问题后,总结汇总
  • 努力学习中,欢迎给位大佬指教
  • 欢迎大家点赞收藏评论关注,问题探讨互相学习

目录

遇到的问题:

# =============针对上面这一问题(编码问题),总结解决方法如下=============

检查文件编码

声明文件编码

转换文件编码


遇到的问题:

安装PyTorch后,想测试是否安装成功,于是编写代码测试,代码如下:

# -*- coding: utf-8 -*-
import torch  # 导入 PyTorch 库

print(torch.cuda.is_available())  # 输出 True 或 False,表示 CUDA 是否可用
print(torch.cuda.device_count())  # 输出可用的 CUDA 设备数量
if torch.cuda.is_available():
    print(torch.cuda.get_device_name(0))  # 输出第一个 CUDA 设备的名称
print(torch.__version__)  # 输出 PyTorch 的版本信息

根据我的设备,正确输出应为:

True
1
Xavier
2.1.0a0+41361538.nv23.06

但是第一次运行报以下错误(编码问题):

SyntaxError: Non-UTF-8 code starting with '\xb2' in file GPUTEXT.py on line 7, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

使用file命令来检查文件的编码:

file -i GPUTEXT.py  # (GPUTEXT.py是我的代码文件,大家自行更换为自己的即可)

输出结果如下(编码格式为:iso-8859-1):

使用命令行工具iconv来转换文件的编码,将此文件从当前编码转换为UTF-8:

iconv -f iso-8859-1 -t UTF-8 GPUTEXT.py -o GPUTEXT_utf8.py 

命令说明:

iso-8859-1 :的要转换文件的原编码,用上面的file -i xxxx命令得到

GPUTEXT.py:换为自己要更改编码格式的原文件

GPUTEXT_utf8.py:编码更改后新生成的文件,自定义命名,自己想用什么名称都行

然后查看GPUTEXT_utf8.py(与原文件相比只是更改了编码格式,其他所有内容都一样)文件编码然后运行(得到正确结果,问题得以解决):

# =============针对上面这一问题(编码问题),总结解决方法如下=============

  1. 检查文件编码

    • 使用文本编辑器:打开GPUTEXT.py文件,查看其编码格式。确保文件是以UTF-8编码保存的。如果不是,请将其转换为UTF-8编码。
    • 使用命令行工具:在终端中(Ctrl+Alt+T),使用file命令来检查文件的编码:
      file -i xxxx(自己的文件全称)
      这将显示文件的MIME类型和编码信息。
  2. 声明文件编码

    • 在Python文件的顶部添加一行编码声明,指定文件的编码格式。对于UTF-8编码,可以在文件的第一行或第二行添加以下内容:
      # -*- coding: utf-8 -*-
    • 这行声明告诉Python解释器该文件使用的是UTF-8编码,从而避免因编码不一致而导致的错误。
  3. 转换文件编码

    • 如果不确定如何更改文件的编码,或者大家的文本编辑器不支持直接更改编码,可以使用命令行工具iconv来转换文件的编码。例如,要将文件从当前编码转换为UTF-8,可以使用以下命令(请根据实际情况替换原始编码:file命令):

      ​​​​​​​iconv -f 原始编码 -t UTF-8  1.py(原始文件名) -o 1_utf8.py(转换后文件名)
      • 这将创建一个名为1_utf8.py的新文件,该文件是UTF-8编码的。然后,可以用这个新文件替换原来的1.py文件。

通过遵循以上步骤,应该能够解决由于文件编码不一致导致的SyntaxError: Non-UTF-8 code starting with '\xb2'错误。

我通过以上步骤解决了这一问题。

你可能感兴趣的:(经验分享,ubuntu,ubuntu,linux)