Не удалось установить sasl с помощью pip из-за ошибок gcc

Я хочу установить конкретную библиотеку, которая включает в себя несколько модулей в требованиях. Два из них sasl и sasl-thrift. Я сталкиваюсь с ошибками, так как при их установке их setup.py терпит неудачу.

Я попытался пройти через ошибку и понял, что gcc не установлен в контейнере докеров, поэтому я установил его. Даже после этого я получаю ту же ошибку и не могу ее понять. Я также читал похожие вопросы, в которых я нашел использование PyPy, но я не мог связать или вывести из них какие-либо дальнейшие шаги.

Моя команда для установки библиотеки:

python3 -m pip install git+https://github.com/my_org/my_lib.git@jupyter-notebooks-v1#egg=athena

Файл требований:

# If your are using it with airflow.
apache-airflow[celery,postgres,hive,password,crypto]==1.10.3
#  This file contain all the requirements to run dag and athena
tzlocal==1.5.1
urllib3==1.21.1
oauthlib==3.0.0
requests==2.18.4
coloredlogs==5.2
pymongo==3.6.1
fs==0.5.4
minio==4.0.6
sasl==0.2.1
thrift-sasl==0.3.0
boto3==1.9.115
botocore==1.12.115
mongoengine==0.17.0
haikunator==2.1.0
pycryptodome==3.7.3
pandas==0.24.2
pyarrow==0.12.1
CMRESHandler==1.0.0
elasticsearch==7.0.0

Ошибка при установке библиотеки:

Found existing installation: oauthlib 3.0.1
    Uninstalling oauthlib-3.0.1:
      Successfully uninstalled oauthlib-3.0.1
  Running setup.py install for fs ... done
  Running setup.py install for sasl ... error
    Complete output from command /opt/conda/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ffcj3sct/sasl/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-x2a76dk1-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/sasl
    copying sasl/__init__.py -> build/lib.linux-x86_64-3.6/sasl
    running egg_info
    writing sasl.egg-info/PKG-INFO
    writing dependency_links to sasl.egg-info/dependency_links.txt
    writing requirements to sasl.egg-info/requires.txt
    writing top-level names to sasl.egg-info/top_level.txt
    reading manifest file 'sasl.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'sasl.egg-info/SOURCES.txt'
    copying sasl/saslwrapper.cpp -> build/lib.linux-x86_64-3.6/sasl
    copying sasl/saslwrapper.h -> build/lib.linux-x86_64-3.6/sasl
    copying sasl/saslwrapper.pyx -> build/lib.linux-x86_64-3.6/sasl
    running build_ext
    building 'sasl.saslwrapper' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/sasl
    gcc -pthread -B /opt/conda/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Isasl -I/opt/conda/include/python3.6m -c sasl/saslwrapper.cpp -o build/temp.linux-x86_64-3.6/sasl/saslwrapper.o
    gcc: error trying to exec 'cc1plus': execvp: No such file or directory
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/opt/conda/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ffcj3sct/sasl/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-x2a76dk1-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-ffcj3sct/sasl/
You are using pip version 9.0.3, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Я ожидаю, что библиотека будет установлена ​​без проблем.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
0
4 849
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я нашел решение, установив sudo apt-get install libsasl2-dev. У этой библиотеки есть заголовок, и мне не нужно самому заботиться о gcc и g++.

Это не решает проблему с Python 3.9.

Glitch 23.09.2021 16:06

На момент этого вопроса не было Python 3.9. Я бы предложил задать этот же вопрос и в описании MVC, где вы упоминаете, что вы уже пробовали, упомянуть эту страницу.

Aviral Srivastava 23.09.2021 21:24

На самом деле он совместим с sasl == 0.3.1.

Glitch 23.09.2021 21:38

@ Глюк, как тебе удалось это решить? у меня не работает с Python 3.8

Snow 13.03.2022 21:26

Другие вопросы по теме