Closed
Description
Future relies on the imp module in standard_library, used for things like from future.standard_library import hooks
. In Python 3.12, the module has been completely removed. Future needs to switch to use importlib.
# future/standard_library/__init__.py
name = bits[0]
module_info = imp.find_module(name, path)
return imp.load_module(name, *module_info)
from future.standard_library import hooks
File "/home/odie5533/test/venv/lib/python3.12/site-packages/future/standard_library/__init__.py", line 65, in <module>
import imp
ModuleNotFoundError: No module named 'imp'
Workaround
If your code is like this
# Python 2 and 3: alternative 2
from future.standard_library import hooks
with hooks():
from urllib.parse import urlparse, urlencode
from urllib.request import urlopen, Request
from urllib.error import HTTPError
You can rewrite it using the try-except form in the Cheat Sheet.
# Python 2 and 3: alternative 4
try:
from urllib.parse import urlparse, urlencode
from urllib.request import urlopen, Request
from urllib.error import HTTPError
except ImportError:
from urlparse import urlparse
from urllib import urlencode
from urllib2 import urlopen, Request, HTTPError
Metadata
Metadata
Assignees
Labels
No labels