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

终端执行Python脚本时absl等模块加载失败求助

问题:终端执行absl脚本报错但Jupyter正常运行

我用如下简单脚本(debug_only.py)复现问题:

from absl import app
from absl import flags

FLAGS = flags.FLAGS
flags.DEFINE_string('config', None, 'Path to the experiment configuration file.')

def main(argv):
    del argv
    print(FLAGS.config)

if __name__ == "__main__":
    app.run(main)

在Jupyter Notebook中调用main函数可正常运行,但在终端执行python debug_only.py时出现如下错误:

Traceback (most recent call last):
File "projects/hecktor2022/only_debug.py", line 1, in <module>
from absl import app
File "/home/qian/.local/lib/python3.8/site-packages/absl/app.py", line 38, in <module>
from absl import logging
File "/home/qian/.local/lib/python3.8/site-packages/absl/logging/__init__.py", line 99, in <module>
from absl.logging import converter
File "/home/qian/.local/lib/python3.8/site-packages/absl/logging/converter.py", line 49, in <module>
STANDARD_CRITICAL = logging.CRITICAL
AttributeError: module 'logging' has no attribute 'CRITICAL'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 72, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 32, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 12, in <module>
import os, glob, subprocess, os.path, time, pwd, sys, requests_unixsocket
File "/usr/lib/python3/dist-packages/requests_unixsocket/__init__.py", line 1, in <module>
import requests
File "/usr/lib/python3/dist-packages/requests/__init__.py", line 43, in <module>
import urllib3
File "/usr/lib/python3/dist-packages/urllib3/__init__.py", line 7, in <module>
from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool, connection_from_url
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 29, in <module>
from .connection import (
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 41, in <module>
from .util.ssl_ import (
File "/usr/lib/python3/dist-packages/urllib3/util/__init__.py", line 20, in <module>
from .retry import Retry
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 20, in <module>
log = logging.getLogger(__name__)
AttributeError: module 'logging' has no attribute 'getLogger'

Original exception was:
Traceback (most recent call last):
File "projects/hecktor2022/only_debug.py", line 1, in <module>
from absl import app
File "/home/qian/.local/lib/python3.8/site-packages/absl/app.py", line 38, in <module>
from absl import logging
File "/home/qian/.local/lib/python3.8/site-packages/absl/logging/__init__.py", line 99, in <module>
from absl.logging import converter
File "/home/qian/.local/lib/python3.8/site-packages/absl/logging/converter.py", line 49, in <module>
STANDARD_CRITICAL = logging.CRITICAL
AttributeError: module 'logging' has no attribute 'CRITICAL'

我发现Python加载absl等库时无法正确加载子模块,尝试argparse等其他包也出现类似AttributeError,不清楚该如何解决,也不理解为何终端报错但Jupyter可正常运行。


解决方法
  • 检查同名文件:查看当前执行脚本的目录下是否存在logging.py或logging.pyc文件,这类文件会覆盖Python标准库的logging模块,直接删除即可。
  • 统一Python环境:对比终端和Jupyter使用的Python环境:
    • 终端执行which python查看当前Python路径
    • Jupyter中执行import sys; print(sys.executable)查看路径
      若路径不一致,切换到Jupyter使用的环境(比如激活对应虚拟环境,或使用python3等指定版本)。
  • 检查sys.path:终端执行python -c "import sys; print(sys.path)",确认当前目录是否排在标准库路径之前,避免优先加载本地同名模块。
  • 重装损坏库:执行pip install --upgrade --force-reinstall absl-py,修复可能损坏的absl库文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 12:42:07