关于python运行odoo-bin的问题,一直无法顺利运行

我是在windows系统下安装odoo开发环境的

我的目的是正确安装并配置好odoo16的开发环境,postgresql、python都安装好了,解释器也配置好了,在启动odoo-bin运行 python ./odoo-bin -c config.conf 的命令时总循环这些错误

D:\Users\Gwh\Program\odoo16\venv\Scripts\python.exe D:\Users\Gwh\Program\odoo16\odoo-bin -c D:\Users\Gwh\Program\odoo16\config.conf 
2023-01-11 16:44:49,261 21260 INFO ? odoo: Odoo version 16.0 
2023-01-11 16:44:49,262 21260 INFO ? odoo: Using configuration file at D:\Users\Gwh\Program\odoo16\config.conf 
2023-01-11 16:44:49,262 21260 INFO ? odoo: addons paths: ['D:\\Users\\Gwh\\Program\\odoo16\\odoo\\addons', 'c:\\users\\gwh\\appdata\\local\\openerp s.a\\odoo\\addons\\16.0', 'd:\\users\\gwh\\program\\odoo16\\addons', 'd:\\users\\gwh\\program\\odoo16\\odoo\\addons'] 
2023-01-11 16:44:49,262 21260 INFO ? odoo: database: odoo16@localhost:5432 
2023-01-11 16:44:49,836 21260 INFO ? odoo.addons.base.models.ir_actions_report: You need Wkhtmltopdf to print a pdf version of the reports. 
2023-01-11 16:44:50,049 21260 CRITICAL ? odoo.modules.module: Couldn't load module base 
2023-01-11 16:44:50,049 21260 CRITICAL ? odoo.modules.module: module 'werkzeug.routing' has no attribute 'NumberConverter' 
2023-01-11 16:44:50,049 21260 ERROR ? odoo.service.server: Failed to load server-wide module `base`. 
Traceback (most recent call last):
  File "D:\Users\Gwh\Program\odoo16\odoo\service\server.py", line 1239, in load_server_wide_modules
    odoo.modules.module.load_openerp_module(m)
  File "D:\Users\Gwh\Program\odoo16\odoo\modules\module.py", line 432, in load_openerp_module
    __import__('odoo.addons.' + module_name)
  File "D:\Users\Gwh\Program\odoo16\odoo\addons\base\__init__.py", line 5, in 
    from . import models
  File "D:\Users\Gwh\Program\odoo16\odoo\addons\base\models\__init__.py", line 25, in 
    from . import ir_http
  File "D:\Users\Gwh\Program\odoo16\odoo\addons\base\models\ir_http.py", line 72, in 
    class SignedIntConverter(werkzeug.routing.NumberConverter):
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'werkzeug.routing' has no attribute 'NumberConverter'
2023-01-11 16:44:50,156 21260 INFO ? odoo.service.server: HTTP service (werkzeug) running on DESKTOP-GPVM2M4:8069 
2023-01-11 16:44:50,435 21260 ERROR ? odoo.modules.loading: Database odoo16_test not initialized, you can force it with `-i base` 
2023-01-11 16:44:50,435 21260 INFO ? odoo.modules.registry: Registry loaded in 0.297s 
2023-01-11 16:45:50,736 21260 ERROR odoo16_test odoo.sql_db: bad query: 
            SELECT latest_version
            FROM ir_module_module
             WHERE name='base'
        
ERROR: 错误:  关系 "ir_module_module" 不存在
LINE 3:             FROM ir_module_module
                         ^
 
2023-01-11 16:45:50,737 21260 WARNING odoo16_test odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo16_test. 
2023-01-11 16:45:52,016 21260 ERROR odoo16_test odoo.sql_db: bad query: 
            SELECT latest_version
            FROM ir_module_module
             WHERE name='base'
        
ERROR: 错误:  关系 "ir_module_module" 不存在
LINE 3:             FROM ir_module_module
                         ^
 
2023-01-11 16:45:52,017 21260 WARNING odoo16_test odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo16_test. 
2023-01-11 16:46:50,751 21260 ERROR odoo16_test odoo.sql_db: bad query: 
            SELECT latest_version
            FROM ir_module_module
             WHERE name='base'
        
ERROR: 错误:  关系 "ir_module_module" 不存在
LINE 3:             FROM ir_module_module
                         ^
 
2023-01-11 16:46:50,752 21260 WARNING odoo16_test odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo16_test. 
2023-01-11 16:46:53,036 21260 ERROR odoo16_test odoo.sql_db: bad query: 
            SELECT latest_version
            FROM ir_module_module
             WHERE name='base'
        
ERROR: 错误:  关系 "ir_module_module" 不存在
LINE 3:             FROM ir_module_module
                         ^
 
2023-01-11 16:46:53,039 21260 WARNING odoo16_test odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo16_test. 
2023-01-11 16:47:50,763 21260 ERROR odoo16_test odoo.sql_db: bad query: 
            SELECT latest_version
            FROM ir_module_module
             WHERE name='base'
        
ERROR: 错误:  关系 "ir_module_module" 不存在
LINE 3:             FROM ir_module_module
                         ^
 
2023-01-11 16:47:50,764 21260 WARNING odoo16_test odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo16_test. 
2023-01-11 16:47:54,066 21260 ERROR odoo16_test odoo.sql_db: bad query: 
            SELECT latest_version
            FROM ir_module_module
             WHERE name='base'
        
ERROR: 错误:  关系 "ir_module_module" 不存在
LINE 3:             FROM ir_module_module
                         ^
 
2023-01-11 16:47:54,067 21260 WARNING odoo16_test odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo16_test. 
2023-01-11 16:48:50,779 21260 ERROR odoo16_test odoo.sql_db: bad query: 
            SELECT latest_version
            FROM ir_module_module
             WHERE name='base'
        
ERROR: 错误:  关系 "ir_module_module" 不存在
LINE 3:             FROM ir_module_module
                         ^
 
2023-01-11 16:48:50,779 21260 WARNING odoo16_test odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo16_test. 
2023-01-11 16:48:55,086 21260 ERROR odoo16_test odoo.sql_db: bad query: 
            SELECT latest_version
            FROM ir_module_module
             WHERE name='base'
        
ERROR: 错误:  关系 "ir_module_module" 不存在
LINE 3:             FROM ir_module_module
                         ^
 
2023-01-11 16:48:55,087 21260 WARNING odoo16_test odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database odoo16_test. 


我希望有人能指导我一下顺利开发出odoo环境,我已经被折磨一周了啊,之前也试过在Ubuntun上开发,同样到这步时也有相同的错误,所以我已经重新卸载在windows重新安装,发现也是一样的问题

这个错误信息表明在加载base模块时出现了问题,具体错误是 "module 'werkzeug.routing' has no attribute 'NumberConverter'"。这意味着werkzeug库的routing模块没有一个名为NumberConverter的属性。
这可能是由于您使用的werkzeug库版本过低而导致的。Odoo 16.0需要werkzeug库版本0.15.4或更高。
解决方法:
1.检查您安装的werkzeug库版本是否符合要求。
2.在确定版本符合要求后检查您的Python路径是否配置正确。
3.使用虚拟环境,将werkzeug库更新到最新版本。
4.使用pip安装werkzeug库。
5.重启odoo服务.
至于我的解答思路,我会先确认werkzeug库的版本是否符合要求,检查Python路径是否配置正确。如果仍然无法解决问题,我会尝试使用虚拟环境或pip安装最新版本的werkzeug库,并重启odoo服务。
另外,建议您检查配置文件config.conf中的数据库配置是否正确,以及是否已经在数据库中创建了名为odoo16的数据库,并且odoo已经有权限访问。

如果您在运行 Odoo 时遇到问题,可能是由于多种原因引起的。这些原因可能包括:

  您使用了不兼容的 Python 版本。Odoo 支持 Python 2.7 和 Python 3.6 及更高版本。

  您没有安装所需的依赖项。在运行 Odoo 之前,请确保已安装所需的依赖项,包括 PostgreSQL 数据库和 Python 库。

  您没有正确配置 Odoo。请检查您的 Odoo 配置文件,确保其中的设置正确无误。

  系统缺少必要的库文件

推荐您创建一个虚拟环境,通过 pip 安装所需的依赖项来解决这些问题。

在运行 odoo-bin 前,您需要设置数据库连接和配置文件路径,例如

./odoo-bin -c /etc/odoo.conf

请确保正确设置了数据库相关参数,并且确保postgresql 数据库已经正常启动。

这些错误提示指出odoo未能正确加载模块"base",在odoo的启动过程中会去查找和加载所有的模块,它会检查这些模块是否符合规范。这个错误消息指出'werkzeug.routing'模块中没有'NumberConverter'属性。 这可能是由于环境配置错误或者模块的损坏导致的,我建议您检查以下几点:
1.确保安装的Odoo版本和运行的python版本相匹配, Odoo 16 需要 Python 3.6以上。
2.确保配置文件config.conf和目录结构是正确的

检查您是否安装了Wkhtmltopdf,在Windows环境下需要在本地安装,因为它是一个外部依赖项。
4.检查是否有其他程序在监听8069端口,防火墙也可能会阻止Odoo连接此端口。
5.最后尝试重新安装werkzeug包,或者更新到最新版本
如果上述步骤均尝试过后仍然无法解决问题,我建议您尝试以下步骤:
6.确保安装了正确版本的Python库,如果需要重新安装,可以使用pip命令。
7.检查您是否安装了PostgreSQL数据库服务器,并且配置正确的数据库名称,用户名和密码。

这种错误通常是由于数据库中没有正确创建 Odoo 所需的表导致的。

在运行 Odoo 时,如果是第一次启动,Odoo 会根据配置文件中指定的数据库连接参数自动创建所有需要的表。如果配置中的数据库连接参数不正确或者无法连接到数据库,就会报错。

解决方法有以下几种:

  1. 检查配置文件中的数据库连接参数是否正确,并确保能够连接到数据库。

  2. 创建数据库时,使用 -d 选项来指定数据库名称。

createdb -U postgres -h localhost -p 5432 mydatabase -E utf-8
  1. 使用 --load-language 参数来加载本地语言

  2. 尝试创建数据库的用户,如果这样的用户已经存在,则不会创建重复的用户。

createuser --createdb --username postgres --no-createrole --no-superuser odoo
  1. 删除该数据库,并再次重新创建该数据库,执行 Odoo 启动脚本并再次尝试。

  2. 删除 postgres 中的所有表,再次运行 Odoo 的启动脚本来重新创建表。

请注意在执行上述操作时,一定要确保您有权限执行这些操作,

继续,另外,在运行 Odoo 时还可以使用 --update 或 --init 选项来重新安装所有模块或特定模块,可能会对解决问题有帮助。

例如:

./odoo-bin --update=all

这个命令会更新所有已安装的模块,或者使用

./odoo-bin --init=module_name

来更新特定模块。

最后,如果仍然无法解决问题,可以考虑在社区中寻求帮助,或者查看 Odoo 的官方文档,里面可能会有更多的解决方案。

这个错误看起来像是werkzeug版本过低导致的问题。确保使用的werkzeug版本为0.16.0或更高版本。可以试试升级 werkzeug 或者在 config.conf 文件中更改 addons_paths 以引用具有正确 werkzeug 版本的库。

具体来说,在 config.conf 文件中,添加一行配置:

addons_path = D:\Users\Gwh\Program\odoo16\odoo\addons,D:\Users\Gwh\Program\odoo16\venv\lib\site-packages

这样odoo就会优先加载 venv 中的 werkzeug 库。
仅供参考,望采纳,谢谢。