You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python集成ebooklib遇lxml ImportError:单进程仅支持单个解释器

Apache+mod_wsgi环境下ebooklib导入lxml报错的解决方案请求

环境与问题

我们的网站后端基于Python 3.x,近期引入ebooklib库生成epub电子书,频繁触发以下错误:

[Fri Jul 28 00:35:40.547413 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912] mod_wsgi (pid=21108): Failed to exec Python script file '/var/www/api/api.wsgi'., referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.547477 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912] mod_wsgi (pid=21108): Exception occurred processing WSGI script '/var/www/api/api.wsgi'., referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549324 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912] Traceback (most recent call last):, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549416 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]   File "/var/www/api/api.wsgi", line 8, in <module>, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549426 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]     from api import app as application, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549438 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]   File "/var/www/api/api/__init__.py", line 80, in <module>, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549445 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]     import api.api.ebooks, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549456 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]   File "/var/www/api/api/api/ebooks.py", line 8, in <module>, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549464 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]     from helper_funcs.ebooks_creation import create_epub, create_pdf_with_html, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549475 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]   File "/var/www/api/api/helper_funcs/ebooks_creation.py", line 6, in <module>, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549482 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]     from ebooklib import epub, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549491 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]   File "/usr/local/lib/python3.7/dist-packages/ebooklib/epub.py", line 40, in <module>, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549498 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]     raise ex, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549539 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]   File "/usr/local/lib/python3.7/dist-packages/ebooklib/epub.py", line 36, in <module>, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549546 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]     from ebooklib.utils import parse_string, parse_html_string, guess_type, get_pages_for_items, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549556 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]   File "/usr/local/lib/python3.7/dist-packages/ebooklib/utils.py", line 20, in <module>, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549562 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912]     from lxml import etree, referer: https://oursite.ourdomain.gr/admin/SignUp
[Fri Jul 28 00:35:40.549589 2023] [wsgi:error] [pid 21108] [client 94.66.158.142:34912] ImportError: Interpreter change detected - this module can only be loaded into one interpreter per process., referer: https://oursite.ourdomain.gr/admin/SignUp

已尝试的解决方案

  • 在Apache的oursite.ourdomain.gr.conf和oursite.ourdomain.gr-ssl.conf中添加WSGIApplicationGroup %{GLOBAL},重启Apache后问题依旧
  • 了解到uWSGI环境下可通过在app.ini中设置single-interpreter = true解决,但我们未使用uWSGI,无该配置文件
  • 怀疑ebooklib存在循环导入问题(epub.py和utils.py均在模块开头导入from lxml import etree),将导入语句移至各函数内部后仍未解决

请求

  1. 提供针对当前Apache+mod_wsgi环境的有效解决方案
  2. 说明uWSGI中app.ini及single-interpreter = true配置的相关信息

内容的提问来源于stack exchange,提问作者Myrto Pirli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 13:17:02