【问题标题】:ImportError: No module named jinja2ImportError:没有名为 jinja2 的模块
【发布时间】:2013-09-27 11:16:07
【问题描述】:

使用 google-app-engine 教程,我收到以下错误堆栈消息:

Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 239, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 298, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\runtime\wsgi.py", line 84, in LoadObject
obj = __import__(path[0])
File "D:\Dev\SandBoxes\web\omaha\omaha.py", line 4, in <module>
import jinja2
ImportError: No module named jinja2

即使我在 app.yaml 的库中声明了它:

application: ***
version: 1
runtime: python27
api_version: 1
threadsafe: true

libraries:
- name: jinja2
  version: latest
- name: webapp2
  version: latest


handlers:
- url: /css
  static_dir: css
- url: /js
  static_dir: js
- url: /img
  static_dir: img
- url: /.*
  script: omaha.application

有人遇到过类似的问题吗?

【问题讨论】:

    标签: python google-app-engine python-2.7


    【解决方案1】:

    flask 包抛出此错误时出现此错误:

    import flask
      File "/usr/local/lib/python2.7/dist-packages/flask/__init__.py", line 19, in <module>
        from jinja2 import Markup, escape
    ImportError: No module named jinja2
    

    解决方案:

    sudo apt-get install python-flask
    

    似乎将 Jinja 安装为依赖项。也许这对某人有帮助。

    【讨论】:

      【解决方案2】:

      使用这些命令为 Python 3 安装 pip 和 Jija2:

      sudo apt-get install python3-pip
      sudo pip3 install Jinja2
      

      【讨论】:

      • OP 明确标记为python-2.7,GAE 标准环境中唯一支持的...
      【解决方案3】:

      您可能没有在 app.yaml 中添加以下行:

      - name: jinja2
        version: latest
      

      【讨论】:

        【解决方案4】:

        要在本地使用Jinja,需要在本地安装

        easy_install Jinja2
        

        pip install Jinja2
        

        【讨论】:

        • 或使用您的包管理器(在 Linux 中)类似以下之一:apt-get install python-jinja2 (debian/ubuntu) 或 yum install python-jinja2 (redhat) 或 zypper install python-Jinja2(suse) ` 和/或可能python3- 这些变体
        • 其实在安装GAE sdk jinja2的时候就自带了,所以不需要从其他来源安装。
        • 这个答案是错误的,GAE 应用使用 SDK 中的jinja2,而不是本地系统 python 安装。
        【解决方案5】:

        需要在 AEL 中重新启动应用程序。

        必须重新启动 Google App Engine Launcher 中的应用程序才能考虑新的库调用。 我被所有其他更改都不需要实际重启服务器这一事实误导了。

        【讨论】:

          【解决方案6】:

          即使它已在您的库中声明,也不一定意味着开发应用服务器可以在 appengine sdk 中找到该库。

          由于您正在运行本教程,我假设您正在从 google 应用引擎启动器运行应用程序。在 laucher 中进入“编辑”>>“首选项”并设置您的 Python 路径和 SDK 路径。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-03-11
            • 2012-12-07
            • 2012-05-23
            • 2019-07-29
            • 2015-07-04
            • 2014-03-15
            • 2017-12-29
            • 2014-09-12
            相关资源
            最近更新 更多