无法在库libxml2中找到函数xmlCheckVersion。是否安装了libxml2?错误:命令' gcc'退出状态1

时间:2016-03-19 03:10:00

标签: python django amazon-web-services gcc pillow

我正在部署和使用弹性beanstalk。当我做eb创建时,我得到你的requirements.txt是无效的,当我仔细观察时,我得到两个错误

  Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
  *********************************************************************************
  error: command 'gcc' failed with exit status 1

我不知道自己可以做些什么,我试过了 卸载枕头 然后sudo apt-get install libjpeg-dev 安装pillow回来了 和pip install lxml

我试过

sudo apt-get install libxml2-dev libxslt1-dev python-dev

apt-get install libxml2-dev libxslt1-dev python-dev

我只想部署我所拥有的东西,但这个枕头的东西是抓住我的脚踝,请你帮助我

我在这里可能需要做什么吗?

    packages:
      yum:
        git: []
        postgresql93-devel: []
        libjpeg-turbo-devel: []
        libpng-devel: []
        freetype-devel: []


container_commands:
  01_migrate:
    command: "source /opt/python/run/venv/bin/activate && python ebagu/manage.py migrate --noinput"
    leader_only: true
  02_createsu:
    command: "source /opt/python/run/venv/bin/activate && python ebagu/manage.py createsu"
    leader_only: true
  03_collectstatic:
    command: "source /opt/python/run/venv/bin/activate && python ebagu/manage.py collectstatic --noinput"
  04_uninstall_pil:
    command: "source /opt/python/run/venv/bin/activate && yes | pip uninstall Pillow"

  05_reinstall_pil:
    command: "source /opt/python/run/venv/bin/activate && yes | pip install Pillow --no-cache-dir"


option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "app.settings"
    "PYTHONPATH": "/opt/python/current/app/app:$PYTHONPATH"
  "aws:elasticbeanstalk:container:python":
    WSGIPath: app/app/wsgi.py
    NumProcesses: 3
    NumThreads: 20
  "aws:elasticbeanstalk:container:python:staticfiles":
    "/static/": "www/static/"

3 个答案:

答案 0 :(得分:1)

亚马逊的弹性beanstalk目前不支持apt-get软件包管理器,因此必须使用默认的yum,如配置文件中所示。如果您使用

进入服务器,可以手动安装枕头的依赖项
sudo yum install libxml2-devel libxslt-devel libjpeg-turbo-devel

(另请注意不同的包名称)。或者最好作为配置文件的补充,以便在部署时根据需要安装它们。

packages:
  yum:
     # Your other non-python packages
    libxml2-devel: []
    libxslt-devel: []
    libjpeg-turbo-devel: []

答案 1 :(得分:0)

尝试使用Ubuntu:

   sudo apt-get install -y libxml2-dev libxslt1-dev zlib1g-dev python3-pip

答案 2 :(得分:0)

尝试在使用Elastic Beanstalk(AMI 2017.03)部署的EC2实例中安装lxml时,我遇到了完全相同的错误,就像在原始问题中一样。问题只发生在Python 3.5上,使用Python 2.7我可以毫无困难地安装它。

就我而言,问题是没有安装GCC。做sudo yum install gcc解决了它。

我认为问题在于Amazon AMI存储库不包含libxml2的Python 3绑定的二进制包。 Python 2.6和2.7(python2X-lxml)的绑定是可用的,这就是为什么一切都与Python 2开箱即用的原因。但是当使用pip-3.5时,pip找不到它们并尝试从而安装它们来源,此时需要GCC。

我的弹性beanstalk配置文件的packages部分如下所示:

packages:
    yum:
        gcc: []
        python35: []
        python35-pip: []
        python35-devel: []
        libxml2-devel: []
        libxslt-devel: []