mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-03-31 23:44:14 +03:00
commit
5d2c8ebbac
27
PIL/Image.py
27
PIL/Image.py
|
@ -28,10 +28,7 @@ from __future__ import print_function
|
||||||
|
|
||||||
from PIL import VERSION, PILLOW_VERSION, _plugins
|
from PIL import VERSION, PILLOW_VERSION, _plugins
|
||||||
|
|
||||||
try:
|
|
||||||
import warnings
|
import warnings
|
||||||
except ImportError:
|
|
||||||
warnings = None
|
|
||||||
|
|
||||||
class _imaging_not_installed:
|
class _imaging_not_installed:
|
||||||
# module placeholder
|
# module placeholder
|
||||||
|
@ -56,22 +53,36 @@ try:
|
||||||
from PIL import _imaging as core
|
from PIL import _imaging as core
|
||||||
if PILLOW_VERSION != getattr(core, 'PILLOW_VERSION', None):
|
if PILLOW_VERSION != getattr(core, 'PILLOW_VERSION', None):
|
||||||
raise ImportError("The _imaging extension was built for another "
|
raise ImportError("The _imaging extension was built for another "
|
||||||
" version of Pillow or PIL. Most PIL functions "
|
" version of Pillow or PIL")
|
||||||
" will be disabled ")
|
|
||||||
|
|
||||||
except ImportError as v:
|
except ImportError as v:
|
||||||
core = _imaging_not_installed()
|
core = _imaging_not_installed()
|
||||||
if str(v)[:20] == "Module use of python" and warnings:
|
# Explanations for ways that we know we might have an import error
|
||||||
|
if str(v).startswith("Module use of python"):
|
||||||
# The _imaging C module is present, but not compiled for
|
# The _imaging C module is present, but not compiled for
|
||||||
# the right version (windows only). Print a warning, if
|
# the right version (windows only). Print a warning, if
|
||||||
# possible.
|
# possible.
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
"The _imaging extension was built for another version "
|
"The _imaging extension was built for another version "
|
||||||
"of Python; most PIL functions will be disabled",
|
"of Python.",
|
||||||
RuntimeWarning
|
RuntimeWarning
|
||||||
)
|
)
|
||||||
if str(v).startswith("The _imaging extension") and warnings:
|
elif str(v).startswith("The _imaging extension"):
|
||||||
warnings.warn(str(v), RuntimeWarning)
|
warnings.warn(str(v), RuntimeWarning)
|
||||||
|
elif "Symbol not found: _PyUnicodeUCS2_FromString" in str(v):
|
||||||
|
warnings.warn(
|
||||||
|
"The _imaging extension was built for Python with UCS2 support; "
|
||||||
|
"recompile PIL or build Python --without-wide-unicode. ",
|
||||||
|
RuntimeWarning
|
||||||
|
)
|
||||||
|
elif "Symbol not found: _PyUnicodeUCS4_FromString" in str(v):
|
||||||
|
warnings.warn(
|
||||||
|
"The _imaging extension was built for Python with UCS4 support; "
|
||||||
|
"recompile PIL or build Python --with-wide-unicode. ",
|
||||||
|
RuntimeWarning
|
||||||
|
)
|
||||||
|
# Fail here anyway. Don't let people run with a mostly broken Pillow.
|
||||||
|
raise
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import builtins
|
import builtins
|
||||||
|
|
Loading…
Reference in New Issue
Block a user