установка m2crypto в док-контейнер - PullRequest
0 голосов
/ 07 июня 2019

Попытка установить m2crypto в Dockerfile:

FROM python:3.7
RUN pip install m2crypto

Я получаю следующее сообщение об ошибке (усеченное):

Step 7/8 : RUN pip install m2crypto
 ---> Running in 1204096f1488
Collecting m2crypto
  Downloading https://files.pythonhosted.org/packages/23/93/1c1a887f956ec38d691af110d38059e234fc941019e0c074a66a10846813/M2Crypto-0.34.0.tar.gz (1.1MB)
Building wheels for collected packages: m2crypto
  Building wheel for m2crypto (setup.py): started
  Building wheel for m2crypto (setup.py): finished with status 'error'
  ERROR: Complete output from command /usr/local/bin/python -u -c 'import setuptools, tokenize;__file__='"'"'/tmp/pip-install-ptf_nqd5/m2crypto/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-w9seu9sh --python-tag cp37:
  ERROR: running bdist_wheel
...
  gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/include/python3.7m -I/tmp/pip-install-ptf_nqd5/m2crypto/SWIG -c SWIG/_m2crypto_wrap.c -o build/temp.linux-x86_64-3.7/SWIG/_m2crypto_wrap.o -Wno-deprecated-declarations -DTHREADING
  SWIG/_m2crypto_wrap.c: In function ‘_wrap__STACK_num_set’:
  SWIG/_m2crypto_wrap.c:9506:19: error: dereferencing pointer to incomplete type ‘struct stack_st’
     if (arg1) (arg1)->num = arg2;
                     ^~
... lots more errors ...
ERROR: Command "/usr/local/bin/python -u -c 'import setuptools, tokenize;__file__='"'"'/tmp/pip-install-ptf_nqd5/m2crypto/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-record-xq22_pd8/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-ptf_nqd5/m2crypto/

Полный вывод при https://pastebin.com/3bmdGvdx.

Я что-то не так делаю?

1 Ответ

1 голос
/ 07 июня 2019

Решил сам, следуя инструкциям по установке :

FROM python:3.7
RUN apt-get update
RUN apt-get install -y build-essential
RUN apt-get install -y python3-dev
RUN apt-get install -y swig
RUN pip install m2crypto

libssl-dev упоминается в инструкциях, но уже присутствует.apt-get update требуется, или build-essential не будет найдено.-y требуется, потому что python3-dev большой, а apt-get install в противном случае выдаст запрос «Вы хотите установить? [Y / n]».

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

...