我一直在使用带有OpenMPI的mpi4py库来开发分布式内存程序。到目前为止,我刚刚使用了vanilla Python 2.7(CPython)。
根据mpi4py project page,mpi4py与“PyPy 2.0及以上版本”兼容。
在我安装Fedora 22时,我安装了PyPy 2.4.0:
sudo dnf install pypy pypy-devel
然后我创建了一个virtualenv并使用以下命令激活它:
virtualenv env -p $(which pypy) && . env/bin/activate
然后我尝试用pip安装mpi4py:
pip install mpi4py
但是我收到以下错误:
...
File "conf/mpidistutils.py", line 121, in customize_compiler
cxx = cxx .replace('-pthread', '')
AttributeError: 'NoneType' object has no attribute 'replace'
但是,使用常规CPython时,同样的一组步骤可以正常工作。我对PyPy的细微差别并不十分熟悉;我错过了一些明显的东西吗?
(注意:我已经在F22上安装了sudo dnf -y install openmpi openmpi-devel
的OpenMPI)