有没有人有Pyramid
通过安装应用程序的经验Elastic Beanstalk
?我的应用程序已部署,但是我无法配置该应用程序的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')
似乎发生错误是因为它是MyApp
在内部/opt/python/run/venv/lib/python2.7/site-packages/
而不是在内部寻找/opt/current/python/app/
。我想念什么?我需要在路径中添加一些内容吗?
多亏了一个朋友在“论坛讨论” Google网上论坛上的发言,我现在有了一个可以解决问题的解决方案。
您将需要为运行该setup.py develop
命令的环境添加配置命令。为此,您需要在.ebextensions文件夹中添加一个名为packages.config的文件(或使用您喜欢的任何命名方案),并具有以下内容:
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 deploy
命令。Elastic Beanstalk现在应该可以识别出您的软件包已安装。干杯!
要了解前两种解决方案之间的区别,请参见:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句