【发布时间】:2018-05-07 06:54:35
【问题描述】:
我最近更新了所有已安装的 pip 包,无法再导入 mpi4py。如果我尝试加载它,我会在交互模式和运行脚本时收到错误ImportError: No module named mpi4py。 (python 2.7 和 python 3 也会发生这种情况。)(如果相关,我仍在使用 OS X Yosemite。)
运行$ python -c "import mpi4py; print(mpi4py.__file__)",输出为:
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named mpi4py`
pip show -f mpi4py 的输出是:
Name: mpi4py
Version: 3.0.0
Summary: Python bindings for MPI
Home-page: https://bitbucket.org/mpi4py/mpi4py/
Author: Lisandro Dalcin
Author-email: dalcinl@gmail.com
License: BSD
Location: /usr/local/lib/python2.7/site-packages
Requires:
Files:
mpi4py-3.0.0.dist-info/DESCRIPTION.rst,mpi4py-3.0.0.dist-info/INSTALLER,mpi4py-3.0.0.dist-info/METADATA,mpi4py-3.0.0.dist-info/RECORD,mpi4py-3.0.0.dist-info/WHEEL,mpi4py-3.0.0.dist-info/metadata.json,mpi4py-3.0.0.dist-info/top_level.txt,mpi4py/MPI.pxd,mpi4py/MPI.so,mpi4py/__init__.pxd,mpi4py/__init__.py,mpi4py/__init__.pyc,mpi4py/__main__.py,mpi4py/__main__.pyc,mpi4py/bench.py,mpi4py/bench.pyc,mpi4py/dl.so,mpi4py/futures/__init__.py,mpi4py/futures/__init__.pyc,mpi4py/futures/__main__.py,mpi4py/futures/__main__.pyc,mpi4py/futures/_base.py,mpi4py/futures/_base.pyc,mpi4py/futures/_lib.py,mpi4py/futures/_lib.pyc,mpi4py/futures/aplus.py,mpi4py/futures/aplus.pyc,mpi4py/futures/pool.py,mpi4py/futures/pool.pyc,mpi4py/futures/server.py,mpi4py/futures/server.pyc,mpi4py/include/mpi4py/mpi.pxi,mpi4py/include/mpi4py/mpi4py.MPI.h,mpi4py/include/mpi4py/mpi4py.MPI_api.h,mpi4py/include/mpi4py/mpi4py.h,mpi4py/include/mpi4py/mpi4py.i,mpi4py/libmpi.pxd,mpi4py/mpi.cfg,mpi4py/run.py,mpi4py/run.pyc
如果我运行python -c "import sys; print(sys.path)",我会得到:
['', '$HOME',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/Users/cns08/Library/Python/2.7/lib/python/site-packages',
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
'/Library/Python/2.7/site-packages']
echo $PATH 给了我:
/usr/local/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin
:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin
【问题讨论】:
-
这通常是一个 xcode 错误,与您的问题无关(我也收到此错误,而所有 python 包在我的机器上都可以正常工作)。您可以发布通过运行
$ python -c "import mpi4py; print(mpi4py.__file__)"和$ pip show -f mpi4py获得的输出吗? -
啊,好的,谢谢。我已将这些添加到帖子中
-
这很奇怪 - 文件
mpi4py/__init__.py在那里,所以模块应该是可导入的。你的python版本是什么?$ python -V -
我的python版本是
Python 2.7.10 -
哦,我现在明白了——你可能有两条蟒蛇,一条是系统的,一条是酿造的。您能否执行
$ python -c "import sys; print(sys.path)"确认或证明我错了?$ echo $PATH也很整洁。