导入错误:没有名为flask_restful的模块。

17

我正尝试部署一个App Engine弹性环境的Python应用,但在部署后在Stackdriver日志的标准错误(stderr)中出现了以下内容:

  File "/env/local/lib/python2.7/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker
    worker.init_process()
  File "/env/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 126, in init_process
    self.load_wsgi()
  File "/env/local/lib/python2.7/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/env/local/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/env/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
    return self.load_wsgiapp()
  File "/env/local/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/env/local/lib/python2.7/site-packages/gunicorn/util.py", line 352, in import_app
    __import__(module)
  File "/home/vmagent/app/my_service/entry_point.py", line 5, in <module>
    import flask_restful as restful
ImportError: No module named flask_restful

entry_point.py在第5行有

import flask_restful as restful

我的 requirement.txt 文件包含

Flask-RESTful==0.3.6
gunicorn==19.7.1

不确定为什么它仍在抱怨Flask-Restful。


3
看起来进口可能是区分大小写的,或许要检查一下?你的要求中的Flask-RESTful不像我见过的大多数软件包那样都是小写字母... - Shakes
1
那就是问题所在。不确定为什么在使用命令行中的pip时它能够正常工作。 - Neil
1
既然这是问题的解决方案,@Sagasaki可以将好的答案发布为回答,而不是评论,以便SoulMan能够接受它并帮助其他SO用户吗? - Temu
4个回答

22

3
也许还需要执行 pip3 install flask-restful。 - Wolfgang Fahl

10

在某些平台上,特别是Linux上,导入是区分大小写的(Windows和Mac可能会或可能不会区分大小写)。包Flask-RESTful不像大多数包一样全部小写(根据PEP 8建议),因此除非使用正确的大小写,否则import flask_restful as restful将导致导入错误。


1
我遇到了同样的问题......我正在使用Visual Studio Code的“Play”按钮运行我的应用程序,但卡住了。一切都已经安装好了......过了一会儿我意识到我必须使用IDE的控制台并从那里启动程序:
python App.py

我正在虚拟环境下运行它。

1
基本上,您的项目根目录与特定(flask_restful)包的Python根目录不匹配。
卸载Python应用程序并在Windows程序文件中重新安装它,您应该在Windows程序中安装Python,而不是单独安装。
我通过这个过程解决了它(愉快编码)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接