DuMate修改Kotti支持python3.12过程中碰到的一些报错留档:kotti启动报错No module named ‘pkg_resources‘

张开发
2026/4/20 0:37:03 15 分钟阅读

分享文章

DuMate修改Kotti支持python3.12过程中碰到的一些报错留档:kotti启动报错No module named ‘pkg_resources‘
DuMate修改Kotti支持python3.12过程中碰到的一些报错报错AttributeError: module pkgutil has no attribute ImpImporter. Did you mean: zipimporter?启动报错skywalkDESKTOP-9C5AU01:~/work/kotti-py312/Kotti$ pserve development.iniTraceback (most recent call last):File /home/skywalk/.pyenv/versions/3.12.9/bin/pserve, line 3, in modulefrom pyramid.scripts.pserve import mainFile /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/site-packages/pyramid/scripts/pserve.py, line 26, in modulefrom pyramid.path import AssetResolverFile /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/site-packages/pyramid/path.py, line 2, in moduleimport pkg_resourcesFile /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/site-packages/pkg_resources/__init__.py, line 2191, in moduleregister_finder(pkgutil.ImpImporter, find_on_path)^^^^^^^^^^^^^^^^^^^AttributeError: module pkgutil has no attribute ImpImporter. Did you mean: zipimporter?安装这个版本的setuptools搞定pip install setuptools70.3.0 -U但是我原来的是80.10.2报错No module named _sqlite3File /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/site-packages/_pytest/assertion/rewrite.py, line 186, in exec_moduleexec(co, module.__dict__)File /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/site-packages/pytest_cov/plugin.py, line 6, in moduleimport coverageFile /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/site-packages/coverage/__init__.py, line 24, in modulefrom coverage.control import (File /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/site-packages/coverage/control.py, line 28, in modulefrom coverage.collector import Collector, HAS_CTRACERFile /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/site-packages/coverage/collector.py, line 19, in modulefrom coverage.data import CoverageDataFile /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/site-packages/coverage/data.py, line 24, in modulefrom coverage.sqldata import CoverageDataFile /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/site-packages/coverage/sqldata.py, line 16, in moduleimport sqlite3File /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/sqlite3/__init__.py, line 57, in modulefrom sqlite3.dbapi2 import *File /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/sqlite3/dbapi2.py, line 27, in modulefrom _sqlite3 import *ModuleNotFoundError: No module named _sqlite3安装sqlite3的开发库sudo apt-get install libsqlite3-dev不行。重新安装新版本的pytestpip install --upgrade pytest pluggy coverage pytest-covSuccessfully installed coverage-7.13.5 pytest-9.0.3 pytest-cov-7.1.0这样报错变回到报错ModuleNotFoundError: No module named pkg_resourcesFile /home/skywalk/.pyenv/versions/3.12.9/lib/python3.12/site-packages/pyramid/path.py, line 2, in moduleimport pkg_resourcesModuleNotFoundError: No module named pkg_resources试了重新安装setuptools还是不行重新建立虚拟python环境试试还是一样后来发现必须要某个特定版本80.10.2pip install setuptools80.10.2 -U接着处理报错No module named _sqlite3简单测试命令python3 -c import sqlite3; print(sqlite3.sqlite_version)按照G4F里的解决方案在Ubuntu下安装全量python3.12# Example for Ubuntu sudo apt-get install python3.12-full不行还需要继续操作重新安装pyenv因为这台系统的额python系统是用pyenv安装的# Uninstall the current Python version pyenv uninstall 3.12.9 # Reinstall with the newly available SQLite libraries pyenv install 3.12.9当然我实际安装的是3.12.12版本pyenv install 3.12安装完成后测试一下python3 -c import sqlite3; print(sqlite3.sqlite_version)没有输出证明ok 问题解决加入g4f后报错cannot import name ContentEditFormBase from kotti.views.editfrom kotti.views.edit import ContentEditFormBaseImportError: cannot import name ContentEditFormBase from kotti.views.edit (G:\dumatework\Kotti\kotti\views\edit\__init__.py)Traceback (most recent call last): File frozen runpy, line 198, in _run_module_as_main File frozen runpy, line 88, in _run_code File G:\dumatework\.venv\Scripts\pserve.exe\__main__.py, line 7, in module File G:\dumatework\.venv\Lib\site-packages\pyramid\scripts\pserve.py, line 34, in main return command.run() ^^^^^^^^^^^^^ File G:\dumatework\.venv\Lib\site-packages\pyramid\scripts\pserve.py, line 275, in run app loader.get_wsgi_app(app_name, config_vars) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File G:\dumatework\.venv\Lib\site-packages\plaster_pastedeploy\__init__.py, line 111, in get_wsgi_app return loadapp( ^^^^^^^^ File G:\dumatework\.venv\Lib\site-packages\paste\deploy\loadwsgi.py, line 246, in loadapp return loadobj(APP, uri, namename, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File G:\dumatework\.venv\Lib\site-packages\paste\deploy\loadwsgi.py, line 271, in loadobj return context.create() ^^^^^^^^^^^^^^^^ File G:\dumatework\.venv\Lib\site-packages\paste\deploy\loadwsgi.py, line 738, in create return self.object_type.invoke(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File G:\dumatework\.venv\Lib\site-packages\paste\deploy\loadwsgi.py, line 198, in invoke app context.app_context.create() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File G:\dumatework\.venv\Lib\site-packages\paste\deploy\loadwsgi.py, line 738, in create return self.object_type.invoke(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File G:\dumatework\.venv\Lib\site-packages\paste\deploy\loadwsgi.py, line 136, in invoke return fix_call(context.object, context.global_conf, **context.local_conf) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File G:\dumatework\.venv\Lib\site-packages\paste\deploy\util.py, line 61, in fix_call val callable(*args, **kw) ^^^^^^^^^^^^^^^^^^^^^ File G:\dumatework\Kotti\kotti\__init__.py, line 196, in main config base_configure(global_config, **settings) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File G:\dumatework\Kotti\kotti\__init__.py, line 250, in base_configure config.include(module) File G:\dumatework\.venv\Lib\site-packages\pyramid\config\__init__.py, line 676, in include c(configurator) File G:\dumatework\kotti_g4f\kotti_g4f\__init__.py, line 58, in includeme config.scan(__name__) File G:\dumatework\.venv\Lib\site-packages\pyramid\config\__init__.py, line 880, in scan scanner.scan( File G:\dumatework\.venv\Lib\site-packages\venusian\__init__.py, line 220, in scan __import__(modname) File G:\dumatework\kotti_g4f\kotti_g4f\views\add.py, line 6, in module from kotti.views.edit import ContentEditFormBase ImportError: cannot import name ContentEditFormBase from kotti.views.edit (G:\dumatework\Kotti\kotti\views\edit\__init__.py)问题原因模板使用了request.macros[page]但 Kotti 使用的是api.macro()方法。修复内容将模板改为使用 Kotti 标准模板模式metal:use-macroapi.macro(kotti:templates/view/master.pt)虚拟环境中重新安装 kotti_g4fcd G:\dumatework\kotti_g4f pip install -e .然后重新启动 Kotti 问题解决总结No module named _sqlite3先用测试命令python3 -c import sqlite3; print(sqlite3.sqlite_version)ModuleNotFoundError: No module named pkg_resources当前是使用的特定版本的setuptools解决pip install setuptools80.10.2 -U

更多文章