我正在使用一个库(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
你可以试试这样的东西。
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了。
你进入命令提示符,你必须把你的文件位置设置为你的python文件的位置。之后,你可以
upgrade pip
就这样,之后,你就可以功能一切。