AWS Elastic Beanstalk Python(3.8)平台:除了使用`requirements.txt之外,还可以为带有`no deps`标志的Python包运行额外的pip命令`
有一个名为AWS Elastic Beanstalk Python(3.8)平台:除了使用`requirements.txt之外,还可以为带有`no deps`标志的Python包运行额外的pip命令`,python,postgresql,pip,amazon-elastic-beanstalk,ebextensions,Python,Postgresql,Pip,Amazon Elastic Beanstalk,Ebextensions,有一个名为aiopg的Python包,用于异步处理PostgreSQL数据库。它有两个依赖项-async timeout和psycopg2 binary。我不希望它在使用pip时安装psycopg2 binary,因为我使用的是常规的psycopg2软件包。这是因为psycopg2 binary的作者不建议在生产中使用它 这一切都不会在本地工作时产生任何问题,因为我可以将所需的aiopg依赖项添加到requirements.txt中,省去不需要的依赖项,然后运行两个单独的命令: pip安装-r
aiopg
的Python
包,用于异步处理PostgreSQL
数据库。它有两个依赖项-async timeout
和psycopg2 binary
。我不希望它在使用pip
时安装psycopg2 binary
,因为我使用的是常规的psycopg2
软件包。这是因为psycopg2 binary
的作者不建议在生产中使用它
这一切都不会在本地工作时产生任何问题,因为我可以将所需的aiopg
依赖项添加到requirements.txt
中,省去不需要的依赖项,然后运行两个单独的命令:
pip安装-r requirements.txt
pip安装aiopg——无DEP
elasticbeanstalk
时,它使用requirements.txt
安装Python
软件包,我不知道如何运行额外的pip
命令
我尝试将pip3 install aiopg--no deps
以及此命令的不同变体添加到eb.config
(同时添加到命令
和容器_命令
部分),但没有效果
现在我的eb.config
看起来是这样的:
软件包:
百胜:
亚马逊linux附加服务:[]
命令:
01_postgres_激活:
命令:sudoamazonlinuxextrasenablepostgresql11
02\u postgres\u安装:
命令:sudo yum install-y postgresql-devel
容器命令:
01_aiopg_安装:
命令:python3-m pip install aiopg==1.2.1——无deps
但这不是工作。Beanstalk环境处于严重
状态,myweb.stdout.log
仍包含以下错误:
web:ModuleNotFoundError:没有名为“aiopg”的模块
那么,我如何使用
--no-deps
标志来实现这个额外的pip
命令,这个标志在requirements.txt
文件中还不受支持吗?在发布这个问题之前,我花了一整天的时间试图解决这个问题。但在发布这篇文章后,我又在谷歌上搜索了一段时间,尝试了其他几种方法,找到了一个有效的解决方案
我将问题中显示的eb.config
文件中的最后一行更改为命令:/var/app/venv/../bin/python-m pip install aiopg==1.2.1——在Beanstalk的EC2实例中,不应该用/var/app/venv/
中的目录名替换deps
。如果您设置了将日志导出到CloudWatch
(您将在那里看到pip
的env的完整路径),请使用ssh连接到一个实例中查找此目录或在eb引擎.log中搜索pip
命令