作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在 Ubuntu 12.04 上成功安装了 MPICH,并且可以让简单的测试 C 程序按预期编译和运行。
现在我尝试使用 pip 安装 mpi4py,只需通过 pip install mpi4py
。我首先执行了 sudo apt-get build-dep python-mpi4py
,效果很好。
我正在使用 virtualenv,所以这个 mpi4py 安装没有使用 sudo(也不应该)。
这是我在一组冗长的控制台输出后遇到的命令和错误,看起来像正常的编译内容(如果需要,我可以打印所有控制台输出,但我认为大部分是表明没有问题的标准编译器警告)。
(local-dev)espears@espears-w:~$ pip install mpi4py
src/ext/mpi_swig.c: In function ‘SWIG_Python_AddErrorMsg’:
src/ext/mpi_swig.c:859:5: error: format not a string literal and no format arguments [-Werror=format-security]
cc1: some warnings being treated as errors
error: command '/usr/bin/mpicc' failed with exit status 1
----------------------------------------
Cleaning up...
Command /home/espears/.virtualenvs/local-dev/bin/python -c "import setuptools, tokenize;__file__='/home/espears/.virtualenvs/local-dev/build/mpi4py/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-5o6OwN-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/espears/.virtualenvs/local-dev/include/site/python2.7 failed with error code 1 in /home/espears/.virtualenvs/local-dev/build/mpi4py
Traceback (most recent call last):
File "/home/espears/.virtualenvs/local-dev/bin/pip", line 11, in <module>
sys.exit(main())
File "/home/espears/.virtualenvs/local-dev/local/lib/python2.7/site-packages/pip/__init__.py", line 185, in main
return command.main(cmd_args)
File "/home/espears/.virtualenvs/local-dev/local/lib/python2.7/site-packages/pip/basecommand.py", line 161, in main
text = '\n'.join(complete_log)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 31: ordinal not in range(128)
但是,which mpicc
给出了预期的结果:/usr/bin/mpicc
并且如上所述,如果我使用此 mpicc
来编译简单的 .c 测试程序,它们工作正常。
我看到一些链接描述了用于编译 MPI 的标志选项 fPIC
,但是,我只是使用 apt-get 来安装 MPI,并且特别希望这些工具仅依赖 native Ubuntu 包,而不是维护单独的安装说明以手动构建它们。
如何确定 mpicc
在 mpi4py
安装过程中失败的原因?
已添加
控制台输出的以下内容似乎是导致问题的编译命令。
building 'mpi4py._mpi_swig' extension
/usr/bin/mpicc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -I/usr/include/python2.7 -c src/ext/mpi_swig.c -o build/temp.linux-x86_64-2.7/src/ext/mpi_swig.o
当我自己从命令行尝试时,出现以下错误:
(local-dev)espears@espears-w:~$ /usr/bin/mpicc -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC -I/usr/include/python2.7 -c src/ext/mpi_swig.c -o build/temp.linux-x86_64-2.7/src/ext/mpi_swig.o
gcc: error: src/ext/mpi_swig.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
最佳答案
只需将 pip 指向 MPI4PY 包 url,而不是包名称,我就能够成功地解决这个问题,而无需对我的系统进行任何更改:
pip install https://bitbucket.org/mpi4py/mpi4py/downloads/mpi4py-1.3.1.tar.gz
关于python - 尽管 MPICC 安装正确且有效,但安装 mpi4py 时出现 MPICC 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21048329/
我是一名优秀的程序员,十分优秀!