python - 在 Elastic Beanstalk 上部署 Pyramid 应用程序

标签 python amazon-web-services deployment amazon-elastic-beanstalk pyramid

有人有通过 Elastic Beanstalk 安装 Pyramid 应用程序的经验吗?我的应用程序已部署,但无法配置应用程序的 application.py(或 pyramid.wsgi)文件使其正常工作。在 get_app 内发生以下错误:

File "/opt/python/run/venv/lib/python2.7/site-packages/pkg_resources/__init__.py", line 829, in resolve
[Sun Jul 17 21:24:15.482379 2016] [:error] [pid 736] [remote 127.0.0.1:9522]     raise DistributionNotFound(req, requirers)
[Sun Jul 17 21:24:15.482427 2016] [:error] [pid 736] [remote 127.0.0.1:9522] DistributionNotFound: The 'MyApp' distribution was not found and is required by the application

其中 MyApp 是我尝试运行的应用程序。

这是我的application.py:

from pyramid.paster import get_app, setup_logging
import os, site, sys
ini_path = os.path.join(os.path.dirname(__file__), 'production.ini')
setup_logging(ini_path)
application = get_app(ini_path, 'main')

似乎发生错误是因为它在 /opt/python/run/venv/lib/python2.7/site-packages/ 中查找 MyApp 而不是比 /opt/current/python/app/ 。我缺少什么?我需要在我的路径中添加一些东西吗?

最佳答案

感谢“pylons-discuss”Google 群组论坛上的一位 friend ,我现在有了一个可行的解决方案。

您需要为运行 setup.pydevelop 命令的环境添加配置命令。为此,您需要将一个文件添加到名为packages.config(或使用您喜欢的任何命名方案)的.ebextensions文件夹中,其中包含以下内容:

container_commands:
  01_setup:
    command: "/opt/python/run/venv/bin/python setup.py develop"

或者,您可以(并且可能应该)运行:

container_commands:
  01_setup:
    command: "/opt/python/run/venv/bin/pip install -e ."

(尽管我希望有人验证这一点,只是为了确定。)

接下来,运行eb部署命令。 Elastic Beanstalk 现在应该识别出您的软件包已安装。干杯!

要了解前两种解决方案之间的差异,请参阅:

Python setup.py develop vs install

关于python - 在 Elastic Beanstalk 上部署 Pyramid 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38426276/

相关文章:

python - 在 python 中创建一个新类型

python - 如何保存 token 以便在 O365 python 库中重复使用?

java - 如何在apache tomcat上分别部署Spring boot和Angular项目

amazon-web-services - 如何在 Windows Server 2016 中将 AWS S3 存储桶映射为映射驱动器(网络驱动器)

google-chrome - AWS 弹性负载平衡 : Seeing extremely long initial connection time

css - 同步网站版主编辑的样式表

ruby-on-rails - 我应该如何在生产环境中运行 delay_job?

python - python中的小语言

Python监控串口(RS-232)握手信号

python - 如何修复错误 : django. db.utils.NotSupportedError:不支持 URI