AWS Elastic Beanstalk:无法安装 mysqlclient

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

我正在浏览 adding database to elastic beanstalk python 文档,但按照这些步骤操作会导致以下错误

2023/05/07 14:06:36.847596 [ERROR] An error occurred during execution of command [app-deploy] - [InstallDependency]. Stop running the command. Error: fail to install dependencies with requirements.txt file with error Command /bin/sh -c /var/app/venv/staging-LQM1lest/bin/pip install -r requirements.txt failed with error exit status 1. Stderr:  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [18 lines of output]
      /bin/sh: line 1: mysql_config: command not found
      /bin/sh: line 1: mariadb_config: command not found
      /bin/sh: line 1: mysql_config: command not found
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-7hpz1pvs/mysqlclient_f18de82744fa43e9b3b8706c3e581791/setup.py", line 15, in <module>
          metadata, options = get_config()
                              ^^^^^^^^^^^^
        File "/tmp/pip-install-7hpz1pvs/mysqlclient_f18de82744fa43e9b3b8706c3e581791/setup_posix.py", line 70, in get_config
          libs = mysql_config("libs")
                 ^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-install-7hpz1pvs/mysqlclient_f18de82744fa43e9b3b8706c3e581791/setup_posix.py", line 31, in mysql_config
          raise OSError("{} not found".format(_mysql_config_path))
      OSError: mysql_config not found
      mysql_config --version
      mariadb_config --version
      mysql_config --libs
      [end of output]

我做了一些挖掘,得出的结论是 ec2 实例没有安装 mysql 或 mariadb。因此,我开始浏览 Amazon Linux 2023 AMI 的可用软件包,因为我的 ec2 正在运行该版本,并将我在 .ebextensions

 文件夹中的配置修改为如下所示:

packages: yum: mysql-selinux: [] mariadb105: [] mariadb-connector-c: [] container_commands: 01_migrate: command: "source /var/app/venv/*/bin/activate && python3 manage.py migrate" leader_only: true 02_createsuperuser: command: "source /var/app/venv/*/bin/activate && python3 manage.py createsuperuser --noinput --username aradipatrik2 --email [email protected]" leader_only: true 03_save_data_to_db: command: "source /var/app/venv/*/bin/activate && python3 manage.py save_data_to_db" leader_only: true option_settings: aws:elasticbeanstalk:application:environment: DJANGO_SETTINGS_MODULE: env_info.settings
包安装成功,但我仍然得到同样的错误。当我通过 ssh 进入 ec2 设备手动安装 mysql 或 mariadb 时,终端告诉我:

通过 SSH 进行的更改 如果实例被自动缩放替换,将会丢失

所以我的问题是: 在使用弹性 beantalk 部署应用程序时,如何将 mysql 或 mariadb 安装到 ec2 实例上,这样我就可以在我的 mysqlclient==2.0.3

 中安装 
requirements.txt

我的

requirements.txt


asgiref==3.6.0 branca==0.6.0 certifi==2022.12.7 charset-normalizer==3.1.0 Django==4.2.1 folium==0.14.0 idna==3.4 Jinja2==3.1.2 MarkupSafe==2.1.2 numpy==1.24.3 python-dotenv==1.0.0 requests==2.29.0 sqlparse==0.4.4 tzdata==2023.3 urllib3==1.26.15 mysqlclient==2.0.3
编辑:收到安装名称以 -dev 或 -devel 结尾的 mariadb 软件包的反馈,但在 Amazon Linux 2023 AMI 的

可用软件包列表 中没有列出此类软件包任何进一步的指示将不胜感激!

python mysql amazon-web-services amazon-ec2 amazon-elastic-beanstalk
1个回答
0
投票
经过反复试验,我最终修改了我的配置文件,以此开始,这解决了我的问题

packages: yum: mariadb105-devel: []
完全是偶然发现的包裹。如果有人知道如何为未来发现这些,请告诉我

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