Windows环境启动Odoo 18遭遇UnicodeDecodeError的问题求助
Windows环境启动Odoo 18遭遇UnicodeDecodeError的问题求助
大家好,我最近在Windows 11上搭建Odoo 18的开发环境,步骤都按要求完成了:克隆了官方仓库、创建并激活了虚拟环境(venv),requirements.txt里的依赖也都安装成功了。结果第一次启动Odoo服务器时直接失败,抛出了UnicodeDecodeError,具体情况如下:
执行的启动命令
(venv) PS D:\tarefas\trarefa_kaue_1\teste\odoo> python odoo-bin -r odoo -w 123
完整错误回溯信息
2025-08-16 04:07:47,493 14676 INFO ? odoo: Odoo version 18.0 2025-08-16 04:07:47,493 14676 INFO ? odoo: addons paths: ['D:\\tarefas\\trarefa_kaue_1\\teste\\odoo\\odoo\\addons', 'c:\\users\\kauen\\appdata\\local\\openerp s.a\\odoo\\addons\\18.0', 'd:\\tarefas\\trarefa_kaue_1\\teste\\odoo\\odoo\\addons', 'd:\\tarefas\\trarefa_kaue_1\\teste\\odoo\\addons'] 2025-08-16 04:07:47,493 14676 INFO ? odoo: database: odoo@default:default 2025-08-16 04:07:50,148 14676 INFO ? odoo.addons.base.models.ir_actions_report: You need Wkhtmltopdf to print a pdf version of the reports. 2025-08-16 04:07:50,152 14676 INFO ? odoo.addons.base.models.ir_actions_report: You need Wkhtmltoimage to generate images from html. 2025-08-16 04:07:52,396 14676 INFO ? odoo.service.server: HTTP service (werkzeug) running on kaue_martins.intelbras.local:8069 Exception in thread odoo.service.cron.cron0: Traceback (most recent call last): File "C:\Python312\Lib\threading.py", line 1075, in _bootstrap_inner self.run() File "C:\Python312\Lib\threading.py", line 1012, in run self._target(*self._args, **self._kwargs) File "D:\tarefas\trarefa_kaue_1\teste\odoo\odoo\service\server.py", line 541, in target self.cron_thread(i) File "D:\tarefas\trarefa_kaue_1\teste\odoo\odoo\service\server.py", line 522, in cron_thread with contextlib.closing(conn.cursor()) as cr: File "D:\tarefas\trarefa_kaue_1\teste\odoo\odoo\sql_db.py", line 799, in cursor return Cursor(self.__pool, self.__dbname, self.__dsn) File "D:\tarefas\trarefa_kaue_1\teste\odoo\odoo\sql_db.py", line 288, in __init__ self._cnx = pool.borrow(dsn) File "D:\tarefas\trarefa_kaue_1\teste\odoo\venv\Lib\site-packages\decorator.py", line 232, in fun return caller(func, *(extras + args), **kw) File "D:\tarefas\trarefa_kaue_1\teste\odoo\odoo\tools\func.py", line 97, in locked return func(inst, *args, **kwargs) File "D:\tarefas\trarefa_kaue_1\teste\odoo\odoo\sql_db.py", line 726, in borrow result = psycopg2.connect( File "D:\tarefas\trarefa_kaue_1\teste\odoo\venv\Lib\site-packages\psycopg2\__init__.py", line 122, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync) UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 78: invalid continuation byte
我的环境详情
- 操作系统:Windows 11
- Odoo版本:18.0
- Python版本:3.12(安装路径:
C:\Python312) - PostgreSQL版本:15
已排查的内容
我自己先做了一些排查:
- 从错误栈可以看出,问题出在
psycopg2.connect调用时,也就是连接PostgreSQL数据库的环节。 - 错误里提到的
byte 0xe7对应拉丁-1(或Windows-1252)编码里的ç字符,说明连接字符串中存在非UTF-8编码的特殊字符,但我找不到来源。 - 检查了命令行传入的参数(
-r odoo和-w 123),完全没有特殊字符。 - 确认PostgreSQL数据库初始化时用的是UTF-8编码,不存在编码不匹配的问题。
目前我怀疑问题可能出在Windows的环境变量里,或者Odoo读取配置文件(odoo.conf)时用了错误的编码(比如用了Windows-1252而不是UTF-8)。
我的问题
- 在Windows环境下,除了命令行参数,Odoo或psycopg2还会从哪些地方读取数据库连接相关的信息?
- 这个场景下最可能导致这个UnicodeDecodeError的原因是什么,具体该怎么修复?
麻烦各位大佬帮忙分析一下,谢谢!
内容来源于stack exchange
相关产品推荐
相关产品推荐

