خطأ مبيك عند تثبيت مبيك4بي على الرغم من التثبيت الصحيح والعمل مبيك

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

  •  21-12-2019
  •  | 
  •  

سؤال

لقد قمت بتثبيت مبيش بنجاح على أوبونتو 12.04 ويمكن الحصول على برامج اختبار ج بسيطة لتجميع وتشغيل كما هو متوقع.

الآن أحاول استخدام نقطة لتثبيت مبي 4بي ، ببساطة عن طريق pip install mpi4py.أنا أعدم لأول مرة sudo apt-get build-dep python-mpi4py التي عملت بشكل جيد.

أنا أعمل مع فيرتوالينف ، لذلك هذا التثبيت مبي 4بي ليس مع سودو (ولا ينبغي أن يكون).

إليك الأمر والخطأ الذي أصابته بعد مجموعة طويلة من مخرجات وحدة التحكم التي تبدو وكأنها عناصر تجميع عادية (يمكنني الطباعة الكل إذا لزم الأمر ، ولكن أعتقد أن معظمها تحذيرات مترجم القياسية التي تشير إلى أي مشاكل).

(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 لتجميع بسيط .ج برامج الاختبار ، وأنها تعمل بشكل جيد.

لقد رأيت بعض الروابط التي تصف خيار العلم fPIC لتجميع مبي ، ولكن ، أنا مجرد استخدام أبت-جيت لتثبيت مبي وتريد على وجه التحديد الاعتماد فقط على حزم أوبونتو الأصلية لهذه الأدوات ، بدلا من الحفاظ على تعليمات التثبيت منفصلة لبناء يدويا لهم.

كيف يمكنني تحديد السبب 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.
هل كانت مفيدة؟

المحلول

وكنت قادرا على العمل بنجاح حول هذا مع أي تغييرات على أي شيء في نظام بلدي ببساطة عن طريق الإشارة نقطة في عنوان ورل حزمة مبي 4بي ، بدلا من اسم الحزمة:

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

نصائح أخرى

وقد واجهت مشكلة مماثلة على أوبونتو 18.04 مع أوبنمبي-4.0.0.حلها عن طريق تثبيت الإصدار الأقدم من أوبنمبي-2.1.6.

apt-get install openmpi=2.1.6
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top