簡體   English   中英

為什么 Google App Engine 找不到我的模塊 (Python 3)?

[英]Why won't Google App Engine find my module (Python 3)?

我是 Google App Engine 的新手,遇到了應用找不到我的模塊的問題。 我得到錯誤line 5, in <module> import foo as bar ModuleNotFoundError: No module named 'foo' 我有如下所示的當前文件結構(遵循Flask的精彩教程)。

問題是, routes.py無法導入foo.py

  • 應用引擎:/
    • 應用程序
      • 靜態/CSS
      • 模板
      • __init__.py
      • 文件
      • 路線.py
    • 應用程序.yaml
    • 配置文件
    • 主文件
    • 要求.txt
    • 源上下文.json

為什么是這樣? App Engine 上的文件在本地工作時的結構是否有特殊要求?

另外,為了讓事情正常工作,我嘗試將模塊 foo 中的代碼改為路由,並且代碼有效。 但是代碼不屬於那里,我想更好地構建它,但應用程序在分離時會中斷。 最后,我想添加目錄“app engine”:/app/libs(或其他推薦),用於存儲我的自定義內容。

編輯(從 routes.py 添加代碼示例)

from flask import render_template, flash, redirect, url_for
from app import app
from app.forms import LookupForm
import logging
import foo as bar

@app.route("/")
@app.route("/index")

def index():
    return render_template("index.html")

我能夠重現您遇到的錯誤。 以下是我的觀察:

  • 您將foo模塊存儲在名為“app”的本地文件夾中(您的main.py文件所在的子目錄)。
  • 為了在這種情況下引用模塊,您需要在執行導入時包含子目錄的名稱。

更改routes.py文件中的以下行:

import foo as bar

到:

import app.foo as bar

我已經測試了這個解決方案,它對我有用。 如果有幫助,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM