gpt4 book ai didi

python - 没有名为 'zope.deprecation' 的模块和简单的 hello world Pyramid 应用程序

转载 作者:行者123 更新时间:2023-12-01 03:17:19 28 4
gpt4 key购买 nike

我正在尝试学习如何将 Pyramid 应用程序部署到AWS(Elastic Beanstalk),并且我正在一步一步地进行,但我陷入了困境。我使用 hello world app 是为了保持简单,但我收到以下错误,我不知道为什么:

[Mon Feb 20 18:08:33.477650 2017] [:error] [] mod_wsgi (pid=2811): Target WSGI script '/opt/python/current/app/application.py' cannot be loaded as Python module.
[Mon Feb 20 18:08:33.477918 2017] [:error] [] mod_wsgi (pid=2811): Exception occurred processing WSGI script '/opt/python/current/app/application.py'.
[Mon Feb 20 18:08:33.478124 2017] [:error] [] [remote 69.127.251.49:45648] Traceback (most recent call last):
[Mon Feb 20 18:08:33.478329 2017] [:error] [] File "/opt/python/current/app/application.py", line 2, in <module>
[Mon Feb 20 18:08:33.478440 2017] [:error] [] from pyramid.config import Configurator
[Mon Feb 20 18:08:33.478630 2017] [:error] [] File "/opt/python/run/venv/lib/python3.4/site-packages/pyramid/config/__init__.py", line 12, in <module>
[Mon Feb 20 18:08:33.478745 2017] [:error] [] from pyramid.interfaces import (
[Mon Feb 20 18:08:33.478923 2017] [:error] [] File "/opt/python/run/venv/lib/python3.4/site-packages/pyramid/interfaces.py", line 1, in <module>
[Mon Feb 20 18:08:33.479050 2017] [:error] [] from zope.deprecation import deprecated
[Mon Feb 20 18:08:33.479213 2017] [:error] [] ImportError: No module named 'zope.deprecation'

我尝试部署的代码如下。我通过控制台上传了这个。

from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response


def hello_world(request):
return Response('Hello %(name)s!' % request.matchdict)

if __name__ == '__main__':
config = Configurator()
config.add_route('hello', '/hello/{name}')
config.add_view(hello_world, route_name='hello')
application = config.make_wsgi_app()
server = make_server('', 8000, application)
server.serve_forever()

我已采取的步骤:

通过 SSH 连接到实例并安装 Pyramid

sudo /opt/python/run/venv/bin/pip install pyramid

检查了 pip freeze 并且它存在并且位于正确的 venv

(venv)[ec2-user@ ~]$ pip list
hupper (0.4.2)
PasteDeploy (1.5.2)
pip (7.1.2)
pyramid (1.8.2)
repoze.lru (0.6)
setuptools (18.4)
translationstring (1.3)
venusian (1.0)
WebOb (1.7.1)
zope.deprecation (4.2.0)
zope.interface (4.3.3)

(venv)[ec2-user@ ~]$ pip --version
pip 7.1.2 from /opt/python/run/venv/local/lib/python3.4/site-packages(python 3.4)

我尝试直接从 python 调用该模块,但没有成功

(venv)[ec2-user@ ~]$ python
Python 3.4.3 (default, Sep 1 2016, 23:33:38)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from zope.deprecation import deprecation
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'zope.deprecation'
>>>

有趣的是,help('modules') 没有显示它,但它确实显示了 Pyramid 。我也尝试过直接安装。该模块位于/opt/python/run/venv/local/lib/python3.4/site-packages 中。

我没有主意了,我很想放弃这种方法并尝试 EB CLI。

这听起来像是我遗漏了一些非常明显的东西。另外,由于这是一个简单的单文件脚本,因此我没有要运行的 setup.py。

我尝试过的其他事情:

  • 关闭整个应用并重试。
  • 在新应用上尝试了 Pyramid 1.7 和 zope.deprecation 4.1.2。
  • 尝试使用requirements.txt 文件。

最后的步骤之一使 python 能够识别 zope.deprecation。应用程序仍然无法运行,因为它已返回

Target WSGI script '/opt/python/current/app/application.py' does not contain WSGI application 'application'.

不确定这是否是进步。

更新

开始工作了。我认为秘诀在于回滚版本,添加requirements.txt,并更改application.py中应用程序变量的位置。

application.py 现在看起来像

from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response


def hello_world(request):
return Response('Hello %(name)s!' % request.matchdict)

config = Configurator()
config.add_route('hello', '/hello/{name}')
config.add_view(hello_world, route_name='hello')
application = config.make_wsgi_app()

if __name__ == '__main__':
server = make_server('', 8000, application)
server.serve_forever()

我会尝试并希望添加更好的答案。

最佳答案

混合时经常出现此类错误setup.py <foo>pip install <bar>由于每个系统处理命名空间包的方式(例如 zope.XXX )。解决方案通常是将所有东西都吹走,然后仅使用一种工具进行安装。例如,如果您使用 python setup.py develop现在,将其替换为 pip install -e .

关于python - 没有名为 'zope.deprecation' 的模块和简单的 hello world Pyramid 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42351972/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com