Как узнать и обновить версию C ++ XX, используемую в python setuptools.command.build_ext

Я пытаюсь установить сторонний пакет Python, используя pip (который включает в себя привязки функций C ++). Он работал на моих персональных компьютерах (под управлением Ubuntu 14.04 и 16.10).

Но я получаю сообщение об ошибке при попытке установки на кластерном сервере, что связано с компилятором C ++. Я хотел бы понять, откуда исходит ошибка (и если это можно исправить без sudo).

Извините, если следующее не представлено хорошо, я не совсем знаком с использованием setuptoolsили с C ++ и использованием привязок C ++ в python. Я изо всех сил старался представить имеющуюся у меня информацию, которая, на мой взгляд, актуальна.

Глядя в пакет setup.py модуль (пакет george), Я нахожу следующие соответствующие строки кода:

import tempfile
import setuptools
from setuptools import setup, Extension
from setuptools.command.build_ext import build_ext as _build_ext

# ... code ...

# Defines an object which inherits _build_ext (i.e build_ext)
class build_ext(_build_ext):
def build_extensions(self):
# ... several lines of code and defined methods...

# At one point, it checks if self.compiler has a 'flag': "-std=c++11"# This is done in a bit of a convoluted way, but I tried to extract
# the crucial parts of the code here:

compiler = self.compiler         # I believe this is a property of setuptools.command.build_ext.build_ext
flagname = "-std=c++11"
with tempfile.NamedTemporaryFile("w", suffix=".cpp") as f:
f.write("int main (int argc, char **argv) { return 0; }")
try:
compiler.compile([f.name], extra_postargs=[flagname])
except setuptools.distutils.errors.CompileError:
raise RuntimeError(...)

# ... Otherwise continues on...

Так что я получаю RuntimeError в конце. Если это также помогает, сообщение об ошибке:

RuntimeError: Unsupported compiler -- at least C++11 support is needed!

Так что какой-то компилятор C ++ не имеет C++11 служба поддержки. Я пытаюсь понять это, поэтому у меня есть несколько вопросов:

  1. Как мне узнать компилятор, о котором идет речь, т.е. setuptools.command.build_ext.build_ext? Это как-то связано с моим g++? И как я могу убедиться, что компилятор, на который он ссылается, имеет поддержку «C ++ 11»?

  2. Есть ли способ исправить это или обновить что-то? К сожалению, это на сервере кластера, в результате у меня нет разрешений sudo. Но я проверил и gcc а также g++ кажется установленным, с версией 4.4.7 20120313 (red Hat 4.4.7-18)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]