Python中如何解决ImportError: cannot import name 'VERSION'错误

win7 py3

>>> from PIL import Image
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\python3\lib\site-packages\PIL\Image.py", line 27, in <module>
    from . import VERSION, PILLOW_VERSION, _plugins
ImportError: cannot import name 'VERSION'
>>> import PIL#这个能导入的
>>> dir(PIL)
['__doc__', '__loader__', '__name__', '__package__', '__path__', '__spec__']

Python中如何解决ImportError: cannot import name 'VERSION'错误

2 回复

这个错误通常是因为模块版本不匹配或循环导入导致的。我来给你几个具体的解决方案:

1. 检查模块版本兼容性

# 首先检查相关模块的版本
import pkg_name
print(pkg_name.__version__)

# 或者使用pip检查
# pip show pkg_name

2. 清理并重新安装模块

# 完全卸载后重新安装
# pip uninstall pkg_name -y
# pip install pkg_name

# 或者强制重新安装
# pip install --force-reinstall pkg_name

3. 检查循环导入问题

# 如果你的代码中有自定义模块,检查是否有这样的结构:
# file_a.py
from file_b import something  # 同时file_b又导入了file_a

# 解决方案:重构代码,将公共部分移到第三个文件

4. 使用try-except处理导入

try:
    from module import VERSION
except ImportError:
    # 使用备用方案
    VERSION = "1.0.0"
    # 或者导入其他名称
    from module import __version__ as VERSION

5. 检查__init__.py文件

# 确保包目录下有正确的__init__.py
# 并且导出的名称正确

# __init__.py示例:
# from .version import VERSION
# __all__ = ['VERSION']

最常见的情况是某个模块更新后API发生了变化,VERSION常量可能被移除了或重命名了。先确认你用的模块版本是否支持这个导入。

建议:先更新所有依赖到最新版本试试。


解决了
$ pip install -U pillow
Collecting pillow
Using cached Pillow-4.3.0-cp35-cp35m-win32.whl
Requirement already up-to-date: olefile in d:\python3\lib\site-packages (from pi
llow)
Installing collected packages: pillow
Found existing installation: Pillow 4.2.1
Uninstalling Pillow-4.2.1:
Successfully uninstalled Pillow-4.2.1
Successfully installed pillow-4.3.0

回到顶部