【问题标题】:aws eb deployment error : No matching distribution found for anaconda-client==1.6.9aws eb 部署错误:没有为 anaconda-client==1.6.9 找到匹配的发行版
【发布时间】:2018-09-26 22:27:45
【问题描述】:

我对 AWS 和一般编码非常陌生。我编写了一个小型 Django 应用程序,现在我正尝试借助此 URL 使用弹性 beanstalk 将其部署在 AWS 上。 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html

我的应用程序使用我需要 psycopg2 包的 Postgres 数据库,我已将其添加到我的 requirements.txt 文件中。 (这不是此 URL 说明的一部分,但我知道我需要 psycopg2,所以我添加了)

当我使用 eb create django-env 创建 EB 环境时,我收到以下错误:

我从 EC2 /var/log/ 获取的此日志。

这里是错误:

[2018-09-26T21:44:20.502Z] INFO [3151] - [应用程序部署 app-d840-180926_224155@1/StartupStage0/AppDeployPreHo ok/03deploy.py] :开始活动... [2018-09-26T21:44:21.774Z] 信息 [3151] - [应用部署 app-d840-180926_224155@1/StartupStage0/AppDeployPreHo ok/03deploy.py] : 活动执行失败,因为:采集雪花石膏==0.7.10 (来自 -r /opt/python/ondeck/app/requi rements.txt(第 1 行)) 正在下载https://files.pythonhosted.org/packages/2e/c3/9b7dcd8548cf2c00531763ba154e524af575e8f36701bacfe5bcadc674 40/alabaster-0.7.10-py2.py3-none-any.whl 正在收集 anaconda-client==1.6.9(来自 -r /opt/python/ondeck/app/requirements.txt(第 2 行) 找不到满足要求 anaconda-client==1.6.9 的版本(来自 -r /opt/python/ondeck/app/requi rements.txt(第 2 行))(来自版本:1.1.1、1.2.2)无匹配 为 anaconda-client==1.6.9 找到分布(来自 -r /opt/python/ondeck/app/requirements.txt(第 2 行)) 您正在使用 pip 版本 9.0.1,但版本 18.0 可用。 你应该 考虑通过“pip install --upgrade pip”命令进行升级。
2018-09-26 21:44:21,768 错误安装依赖项时出错: 命令'/opt/python/run/venv/bin/pip install -r /opt/ python/ondeck/app/requirements.txt' 返回非零退出状态 1
回溯(最近一次通话最后): 文件“/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py”,第 22 行,在 main install_dependencies() 文件“/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py”,第 18 行,在 install_dependencies check_call('%s install -r %s' % (os.path.join(APP_VIRTUAL_ENV, 'bin', 'pip'), requirements_file), shell=True) 文件“/usr/lib64/python2.7/subprocess.py”,第 186 行,在 check_call 中 raise CalledProcessError(retcode, cmd) CalledProcessError: Command '/opt/python/run/venv/bin/pip install -r /opt/python/ondeck/app/requirements.txt' 返回非零退出 状态 1 (Executor::NonZeroExitStatus)

我的Django项目settings.py文件有psycopg2

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'test',
        'USER': 'postgres',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '5432',
        'TEST': {
            'NAME': 'testdb',
        },
    }
}

[编辑] 我的 requirements.txt 文件是:

c:\Users\abhi\OneDrive\Python-Projects\myproject>cat requirements.txt
Django==2.1.1
psycopg2==2.7.5
pytz==2018.5

我的问题是:

  1. 如何解决此问题?
  2. 为什么会说您使用的是 pip 9.0.1 版本,但是 18.0 版本可用?我使用的是 pip 18.0,我确定。
  3. 为什么说 - Collecting anaconda-client==1.6.9 ?我想安装psycopg2,而不是anaconda

这是我的副业,我不知道如何解决它。

【问题讨论】:

    标签: python django amazon-web-services amazon-elastic-beanstalk


    【解决方案1】:

    好吧,您的requirements.txt 列出了anaconda-client==1.6.9。 PyPi 上唯一可用的版本是1.1.1 and 1.2.2As far as the Github project 担心,1.6.9 确实存在,但是,PyPi/pip 不知道它,因为它从未发布到 PyPi。您的选择是:

    1. 在 requirements.txt 中列出 anaconda-client 1.2.2/1.1.1
    2. 通过conda安装anaconda-client
    3. anaconda-client的源代码捆绑到您的项目中,这样您就可以避免完全安装它。

    【讨论】:

    • 我的 requirements.txt 文件没有 anaconda-client==1.6.9 这正是让我感到困惑的地方。 (请参阅我的问题中的编辑,我已添加 txt)
    • 它是alabaster 的依赖项。我认为这也不是依赖关系,但是,它可能反过来又是其他事物的依赖关系。 pip install -r requirements.txt 是否在您的本地计算机上正常工作?
    • 好吧,我能解决这个问题。我认为原因是我在通过 requirements.txt 文件更改后没有提交。并且 eb create 仅从 master 分支获取代码。不过,非常感谢。我的代码现在在 AWS 上运行。
    • 很高兴您的代码有效。 “eb create 接受你当前分支的最新提交”是一个准确的陈述。
    猜你喜欢
    • 2019-03-20
    • 2015-04-14
    • 2021-08-18
    • 2015-11-22
    • 2020-03-27
    • 2019-09-25
    • 2020-08-04
    • 1970-01-01
    • 2016-04-29
    相关资源
    最近更新 更多