Errore MPICC Quando si installa MPI4PY nonostante l'installazione corretta e funzionante MPICC

StackOverflow https://stackoverflow.com//questions/21048329

  •  21-12-2019
  •  | 
  •  

Domanda

Ho installato con successo Mpich su Ubuntu 12.04 e può ottenere i semplici programmi Test C per compilare ed eseguire come previsto.

Ora sto cercando di usare PIP per installare MPI4py, semplicemente tramite pip install mpi4py. Ho eseguito per la prima volta sudo apt-get build-dep python-mpi4py che ha funzionato bene.

Sto lavorando con Virtualenv, quindi questa installazione MPI4py non è con sudo (e non dovrebbe essere).

Ecco il comando e l'errore che ho colpito dopo un lungo set di output della console che assomiglia al normale roba della compilazione (posso stampare tutto dell'uscita della console, se necessario, ma penso che la maggior parte Gli avvertenze del compilatore standard non indicano problemi).

(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)
.

Ma, which mpicc fornisce il risultato atteso: /usr/bin/mpicc e come sopra menzionato, se utilizzo questo mpicc per compilare semplici programmi di test .C, funzionano bene.

Ho visto alcuni collegamenti che descrivono un'opzione flag fPIC per la compilazione MPI, ma, ho semplicemente utilizzato Apt-get per installare MPI e desiderano specificamente solo a fare affidamento sui pacchetti Ubuntu nativi per questi strumenti, al contrario di mantenere le istruzioni di installazione separate per costruirli manualmente.

Come posso determinare il motivo per cui mpicc non funziona nel processo di installazione mpi4py?

aggiunto

Di seguito dall'output della console sembra essere il comando di compilazione che provoca il problema.

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
.

Questo dà il seguente errore quando provo dalla riga di comando stesso:

(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.
.

È stato utile?

Soluzione

Sono stato in grado di lavorare con successo questo senza modifiche a nulla nel mio sistema semplicemente puntando PIP all'URL del pacchetto MPI4py, piuttosto che il nome del pacchetto:

pip install https://bitbucket.org/mpi4py/mpi4py/downloads/mpi4py-1.3.1.tar.gz
.

Altri suggerimenti

Un problema simile è stato riscontrato su Ubuntu 18.04 con OpenMPI-4.0.0. Risolto installando la versione precedente di OpenMPI-2.1.6.

apt-get install openmpi=2.1.6
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top