温馨提示×

Debian Python编码怎么设

小樊
34
2026-10-02 04:34:39
栏目: 编程语言

在 Debian 上设置 Python 编码,通常分系统/终端编码、Python 自身默认编码、源码文件编码三种情况。下面按常见场景说明。


一、查看当前编码

locale

重点看:

  • LANG
  • LC_CTYPE

Python 中查看:

import sys
print(sys.getdefaultencoding())
print(sys.stdout.encoding)

二、设置系统/终端编码(推荐 UTF-8)

1. 生成并切换 locale

sudo dpkg-reconfigure locales

勾选:

en_US.UTF-8

(或 zh_CN.UTF-8)

设置默认:

sudo update-locale LANG=en_US.UTF-8

重新登录或重启。

2. 临时设置(当前 shell)

export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

三、Python 默认编码(PYTHONIOENCODING)

如果是输出乱码(print 到终端),推荐:

export PYTHONIOENCODING=utf-8

可写入:

~/.bashrc

四、Python 源码文件编码

Python 3(默认 UTF-8)

一般不用改。

显式声明(兼容老代码)

文件第一行或第二行:

# -*- coding: utf-8 -*-

五、Python 2(不推荐,但常遇到)

1. 设置默认编码

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

⚠️ 不推荐,容易埋坑。

2. 正确做法

  • 用 unicode
  • 输入输出时 encode/decode

六、常见坑总结

问题 解决
print 中文乱码 PYTHONIOENCODING=utf-8
读文件乱码 open(f, encoding='utf-8')
系统无 UTF-8 dpkg-reconfigure locales
SSH 客户端乱码 客户端编码设为 UTF-8

七、推荐标准配置(Debian)

LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
PYTHONIOENCODING=utf-8

如果你说的是具体场景(比如:Django、定时任务、systemd、pip 安装乱码),可以告诉我,我给你更精准的配置。

0 踩