在AWS Beanstalk上安装需求前升级pip。

问题描述 投票:0回答:1

我正在使用一个库(weasyprint),需要比AWS Beanstalk平台提供的pip更新的版本。我有一个 .ebextensions 文件,像这样升级pip。

commands:
  01_upgrade_pip:
    command: '/opt/python/run/venv/bin/pip install --upgrade pip'
    ignoreErrors: false

问题是,每次重建实例的时候... weasyprint 安装失败,但如果我尝试在同一个实例上再次部署,它就成功部署了。我的猜测是pip在安装之前没有进行升级。weasyprint 被安装,然后第二次升级pip,这样就可以工作了。有没有办法确保pip在创建实例时就被升级?

我正在使用 Python 3.6 running on 64bit Amazon Linux/2.9.7

python amazon-web-services flask amazon-elastic-beanstalk
1个回答
0
投票

你可以试试这样的东西。

commands:
  01_upgrade_pip:
    command: '/opt/python/run/venv/bin/pip install --upgrade pip && /opt/python/run/venv/bin/pip install weasyprint'
    ignoreErrors: false

或者你也可以做一个这样的文件 pip_install.sh,然后做一些类似这样的事情。

commands:
      01_run_installer:
        command: 'bash /path/to/pip_install.sh'
        ignoreErrors: false

ElasticBeanstalk也支持docker 所以你可以在一个docker容器里运行所有的东西 这样你就可以完全控制安装了

我相信这些方法中的一种应该是可行的,但是我已经很久没有使用ElasticBeanstalk了。


-1
投票

你进入命令提示符,你必须把你的文件位置设置为你的python文件的位置。之后,你可以

upgrade pip

就这样,之后,你就可以功能一切。

© www.soinside.com 2019 - 2024. All rights reserved.