首页 > 解决方案 > 让 python 知道缺少 __init__.py 的包

问题描述

我无法在 OS X 上导入,显然是因为包目录 ( )mpl_toolkits中缺少文件。__init__.py/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/mpl_toolkits

$ python -c 'import mpl_toolkits'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named mpl_toolkits

$ ls /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/mpl_toolkits
axes_grid  axes_grid1  axisartist  exceltools.py  exceltools.pyc  gtktools.py  gtktools.pyc  mplot3d

子包mplot3d确实有一个,__init.py__但也不能导入:

$ ls /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/mpl_toolkits/mplot3d/
__init__.py  __init__.pyc  art3d.py  art3d.pyc  axes3d.py  axes3d.pyc  axis3d.py  axis3d.pyc  proj3d.py  proj3d.pyc

$ python -c 'from mpl_toolkits.mplot3d import axes3d'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named mpl_toolkits.mplot3d

从 OS X 10.11 开始,即使是 root 也没有/System. 我知道可以通过执行启动进入恢复模式并禁用系统完整性保护csrutil disable,这将允许创建丢失的__init.py__文件。但是,有没有更简单的方法让 python 知道这个包?

标签: pythonmacospython-2.7

解决方案


问题是您仍在使用 Python 2。Matplotlib 不久前放弃了对 Python 2 的支持。Python 开发团队本身将在一周内(2020 年初)放弃所有 Python 2 支持。您至少需要 Python 3.6 才能使最新的 Matplotlib 工作。


推荐阅读