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

