Python 通过.ebextensions升级pip

Python 通过.ebextensions升级pip,python,pip,amazon-elastic-beanstalk,Python,Pip,Amazon Elastic Beanstalk,我正在尝试升级pip以可能解决一个dist info directory not found错误,但我的部署似乎完全忽略了任何尝试。需求的安装是否可能发生在任何.ebextensions脚本之前&这就是为什么我看不到任何进展的原因?如果是,我可以在什么时候升级pip 我知道我可以使用SSH,但我不想在每次部署时都这样做 01\u升级\u pip.config commands: 01_upgrade_pip: command: /opt/python/run/venv/bin/pip

我正在尝试升级pip以可能解决一个
dist info directory not found
错误,但我的部署似乎完全忽略了任何尝试。需求的安装是否可能发生在任何.ebextensions脚本之前&这就是为什么我看不到任何进展的原因?如果是,我可以在什么时候升级pip

我知道我可以使用SSH,但我不想在每次部署时都这样做

01\u升级\u pip.config

commands:
  01_upgrade_pip:
    command: /opt/python/run/venv/bin/pip install --upgrade pip
    ignoreErrors: false
这里的一切都正确吗?或者我一直在关注的资源是否已被弃用

我已经尝试将该命令包含在我的packages.config中,希望能够首先进行升级,但仍然没有迹象表明它已被确认

packages:
  yum:
    git: []

commands:
  01_upgrade_pip:
    command: /opt/python/run/venv/bin/pip install --upgrade pip
    ignoreErrors: false
我现在不会包括日志,除非有人要求一些特定的东西。目前所有相关信息都存在相同的
dist info directory not found
错误,同时警告我正在使用pip version 9(当19可用时)(确认没有发生升级)

更新下面的答案 下面提到的解决方案是使用preinit脚本

/opt/elasticbeanstalk/hooks/preinit/08upgradepip.sh中:

python3 -m pip install --upgrade pip

您是否尝试使用
preinit
hook

启动实例时,Elastic Beanstalk按以下顺序运行preinit、appdeploy和postinit。在后续部署到运行实例时,Elastic Beanstalk会运行appdeploy挂钩。configdeploy钩子在用户更新实例软件配置设置时运行。restartappserver挂钩仅在用户启动应用程序服务器重启时运行

根据文件:

将希望钩子触发的脚本放置在/opt/elasticbeanstalk/hooks/文件夹的子文件夹中


你能给我举个例子吗?我确实读过,但我对执行感到困惑。我尝试使用
文件
,但每次都失败了。我需要一个单独的.config文件来假定正确的顺序吗?不,我手头没有示例。您是否可以添加您使用
文件尝试的内容来更新您的问题?另一个对我有效的选项是使用Docker而不是python选项。它真的很容易使用,而且你可以更好地控制你安装的软件包。不久之后,我就去了Docker route。我确实弄明白了preinit,但是它仍然失败了。我会更新我的问题,你可以把它放在你的答案中,供将来的读者阅读。您可以在
.ebextensions
文件
部分安装钩子脚本,如中所述