Python 无法使用Dockerfile安装llvm lite

Python 无法使用Dockerfile安装llvm lite,python,docker,dockerfile,llvm,llvmlite,Python,Docker,Dockerfile,Llvm,Llvmlite,下面的场景阻止我在dockerize我的烧瓶应用程序中取得进展,有人对此有任何线索吗?下面是一些重要信息 我已经了解了如何将LLVM_CONFIG文件设置为正确的路径,但是在docker构建过程中是哪个路径以及如何设置 pip 20.2.3 python 3.8 在Dockerfile下面: FROM python:3.8-alpine RUN adduser -D ddc-user WORKDIR /ddc COPY . /ddc RUN echo "http://dl-8.

下面的场景阻止我在dockerize我的烧瓶应用程序中取得进展,有人对此有任何线索吗?下面是一些重要信息

我已经了解了如何将LLVM_CONFIG文件设置为正确的路径,但是在docker构建过程中是哪个路径以及如何设置

  • pip 20.2.3

  • python 3.8

在Dockerfile下面:

FROM python:3.8-alpine
RUN adduser -D ddc-user
WORKDIR /ddc
COPY . /ddc
RUN echo "http://dl-8.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \
     && apk --no-cache --update-cache add postgresql-dev g++ linux-headers gfortran libffi-dev openssl-dev gcc build-base bash libpng-dev openblas-dev wget freetype-dev python3-dev py3-pip \
     && ln -s /usr/include/locale.h /usr/include/xlocale.h
RUN apk --update add libxml2-dev libxslt-dev libffi-dev gcc musl-dev libgcc openssl-dev curl
RUN apk add jpeg-dev zlib-dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev
RUN pip install --upgrade pip
RUN pip install Pillow
RUN LLVM_CONFIG=/tmp/pip-install-3knaaqva/llvmlite/ffi/llvm-config pip install llvmlite==0.34.0
RUN apk add --no-cache --virtual .build-deps gcc musl-dev
RUN pip install numpy pyyaml
RUN pip install setuptools wheel
RUN pip install cython
RUN pip install -r requirements.txt
RUN chmod +x boot.sh
ENV FLASK_APP main.py
RUN chown -R ddc-user:users ./
USER ddc-user
EXPOSE 5000
ENTRYPOINT ["./boot.sh"]
下面是错误:

Collecting llvmlite==0.34.0
  Downloading llvmlite-0.34.0.tar.gz (107 kB)
Building wheels for collected packages: llvmlite
  Building wheel for llvmlite (setup.py): started
  Building wheel for llvmlite (setup.py): finished with status 'error'
  ERROR: Command errored out with exit status 1:
   command: /usr/local/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-pe4psx4_/llvmlite/setup.py'"'"'; __file__='"'"'/t
mp/pip-install-pe4psx4_/llvmlite/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-skfgived
       cwd: /tmp/pip-install-pe4psx4_/llvmlite/
  Complete output (26 lines):
  running bdist_wheel
  /usr/local/bin/python /tmp/pip-install-pe4psx4_/llvmlite/ffi/build.py

  LLVM version... Traceback (most recent call last):
    File "/tmp/pip-install-pe4psx4_/llvmlite/ffi/build.py", line 105, in main_posix
      out = subprocess.check_output([llvm_config, '--version'])
    File "/usr/local/lib/python3.8/subprocess.py", line 411, in check_output
      return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
    File "/usr/local/lib/python3.8/subprocess.py", line 489, in run
      with Popen(*popenargs, **kwargs) as process:
    File "/usr/local/lib/python3.8/subprocess.py", line 854, in __init__
      self._execute_child(args, executable, preexec_fn, close_fds,
    File "/usr/local/lib/python3.8/subprocess.py", line 1702, in _execute_child
      raise child_exception_type(errno_num, err_msg, err_filename)
  FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-install-3knaaqva/llvmlite/ffi/llvm-config'

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/tmp/pip-install-pe4psx4_/llvmlite/ffi/build.py", line 191, in <module>
      main()
    File "/tmp/pip-install-pe4psx4_/llvmlite/ffi/build.py", line 181, in main
      main_posix('linux', '.so')
    File "/tmp/pip-install-pe4psx4_/llvmlite/ffi/build.py", line 107, in main_posix
      raise RuntimeError("%s failed executing, please point LLVM_CONFIG "
  RuntimeError: /tmp/pip-install-3knaaqva/llvmlite/ffi/llvm-config failed executing, please point LLVM_CONFIG to the path for llvm-config
  error: command '/usr/local/bin/python' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for llvmlite
收集llvmlite==0.34.0 下载llvmlite-0.34.0.tar.gz(107 kB) 为收集的包构建控制盘:llvmlite 为llvmlite(setup.py)构建控制盘:已启动 为llvmlite(setup.py)构建控制盘:已完成,状态为“error” 错误:命令出错,退出状态为1: 命令:/usr/local/bin/python-u-c'import sys、setuptools、tokenize;sys.argv[0]='''''/tmp/pip-install-pe4psx4./llvmlite/setup.py'''__文件\ \=''''''''''/t mp/pip-install-pe4psx4_/llvmlite/setup.py';f=getattr(标记化,“'open'”,open)(\uuuuu文件);code=f.read().replace(“\r\n”“”、“\n”“”);f、 关闭() ;exec(编译(代码,“文件”“exec”))“bdist\u wheel-d/tmp/pip wheel skfgived cwd:/tmp/pip-install-pe4psx4_u2;/llvmlite/ 完整输出(26行): 运转的车轮 /usr/local/bin/python/tmp/pip-install-pe4psx4_/llvmlite/ffi/build.py LLVM版本。。。回溯(最近一次呼叫最后一次): 文件“/tmp/pip-install-pe4psx4\uu/llvmlite/ffi/build.py”,第105行,位于main\u posix中 out=子进程。检查输出([llvm_config'--version']) 检查输出中的文件“/usr/local/lib/python3.8/subprocess.py”,第411行 返回运行(*popenargs,stdout=PIPE,timeout=timeout,check=True, 文件“/usr/local/lib/python3.8/subprocess.py”,第489行,正在运行 使用Popen(*popenargs,**kwargs)作为流程: 文件“/usr/local/lib/python3.8/subprocess.py”,第854行,在__ self.\u execute\u child(参数、可执行文件、预执行文件、关闭文件、, 文件“/usr/local/lib/python3.8/subprocess.py”,第1702行,在执行子进程中 引发子项异常类型(错误号、错误消息、错误文件名) FileNotFoundError:[Errno 2]没有这样的文件或目录:'/tmp/pip-install-3knaaqva/llvmlite/ffi/llvm config' 在处理上述异常期间,发生了另一个异常: 回溯(最近一次呼叫最后一次): 文件“/tmp/pip-install-pe4psx4_/llvmlite/ffi/build.py”,第191行,在 main() 文件“/tmp/pip-install-pe4psx4_389;/llvmlite/ffi/build.py”,第181行,主文件 main_posix('linux','.so') 文件“/tmp/pip-install-pe4psx4\uu/llvmlite/ffi/build.py”,第107行,位于main\u posix中 引发运行时错误(“%s执行失败,请指向LLVM\u CONFIG” 运行时错误:/tmp/pip-install-3knaaqva/llvmlite/ffi/llvm config执行失败,请将llvm_config指向llvm config的路径 错误:命令“/usr/local/bin/python”失败,退出状态为1 ---------------------------------------- 错误:为llvmlite生成控制盘失败
首先,LLVM Lite需要LLVM

因此,必须正确安装LLVM,才能执行此操作:

RUN apt-get update && apt-get install -y \
    build-essential \
    libedit-dev  \
    llvm-{version} \
    llvm-{version}-dev
然后,设置构建LLVM-Lite时使用的环境变量,并安装
pip
软件包:

RUN LLVM_CONFIG=/usr/bin/llvm-config-{version} pip install llvmlite=={version}
这会解决你的问题

要了解哪个版本的LLVM与每个版本的LLVM Lite兼容,请转到:


您最终找到了问题的解决方案吗?如果答案解决了您的问题,或者您认为这是最好的解决方案。请投票并将此答案标记为已接受!谢谢!如果答案不能解决您的问题,请告诉我!