Skip to content

The 'imp' import in Python 3.13 is obsolete. #1527

@dudu-14

Description

@dudu-14

My system: Windows 11 24H2 Pro Workstation Edition
My environment: Python 3.13 (Microsoft Store), Python 3.13, Python 3.12
Installation command: python3.13 -m pip install thefuck
My terminal: PowerShell
This is my terminal when the Bug occurred:
Image
This is the error message:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\Scripts\fuck.exe\__main__.py", line 2, in <module>
    from thefuck.entrypoints.not_configured import main
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\thefuck\entrypoints\not_configured.py", line 13, in <module>
    from .. import logs, const  # noqa: E402
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\thefuck\logs.py", line 8, in <module>
    from .conf import settings
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\thefuck\conf.py", line 1, in <module>
    from imp import load_source
ModuleNotFoundError: No module named 'imp'

It seems that the imp module is no longer available.
The imp module has been gradually deprecated since Python 3.4 and was officially removed from the standard library in Python 3.12. In Python versions above 3.12, the ModuleNotFoundError: No module named 'imp' error occurs.
This 'imp' has been replaced by 'importlib'.

我是中国人,所有也要写一次中文版的:

我的系统:Windows 11 24H2专业工作站版
我的环境:Python 3.13(微软应用商店)、Python 3.13、Python 3.12
安装命令:python3.13 -m pip install thefuck
我的终端:PowerShell
这是Bug出现时我的终端:
Image
这是错误信息:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\Scripts\fuck.exe\__main__.py", line 2, in <module>
    from thefuck.entrypoints.not_configured import main
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\thefuck\entrypoints\not_configured.py", line 13, in <module>
    from .. import logs, const  # noqa: E402
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\thefuck\logs.py", line 8, in <module>
    from .conf import settings
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\thefuck\conf.py", line 1, in <module>
    from imp import load_source
ModuleNotFoundError: No module named 'imp'

看起来imp模块已经没了。
imp模块自Python 3.4起就逐渐被弃用,并在Python 3.12中正式从标准库中移除。在Python 3.12以上的版本中,会出现ModuleNotFoundError: No module named 'imp'错误。
这个imp已经被importlib取代了。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions