首页 文章

Python app引擎非标准包导入

提问于
浏览
1

我需要一个名为qrcode的非标准App Engine包 . 它是纯粹的python lib,仅依赖于App引擎支持的PIL .

我的文件夹结构是:

app
|--- handlers/
|------ my_handler.py
|--- util/
|------ __init__.py
|------ qrcode/
|--------- __init__.py
|--------- qrcode/
|------------ __init__.py
|------------ other lib files
|--- index.py

index.py 我映射到 my_handler.py 并在 my_handler.py 上我在其中一个处理程序类的get方法中调用了 from util.qrcode import qrcode . 问题是我在 __init__.py 文件上得到 ImportError: No module named qrcode.main .

__init__.py:

from qrcode.main import QRCode, make
from qrcode.constants import *
from qrcode import image

qrcode.mainqrcode 包中的一个.py文件(要查看整个包,请检查存储库链接here

我已经看了,我找不到有什么问题 . 我很感激你的帮助 . 谢谢!

我搜索的其他问题:
AppEngine server cannot import atom module
Import custom package in python google app engine
Importing nested modules in Python

2 回答

  • 0

    Python路径将包含app.yaml所在的目录 . 如果那是你的 app 模块所在的地方,那么你应该使用绝对导入:

    # in index.py
    from app.handlers import my_handler
    
    # in my_handler.py
    from app.util.qrcode import qrcode
    
  • 0

    由于某种原因(我不知道自己的名字 . 为了使它工作,我必须删除包文件上所有对 qrcode 的引用 . 我的新 __init__.py 导入成为:

    from main import QRCode, make
    from constants import *
    import image
    

    所有.py文件的导入都需要更改,我必须在 app.yaml 中包含 PIL (之前我忘记了,但从来没有足够面对这个错误= P) .

    到现在为止我仍然无法生成图像,但我没有更多的导入错误,所以我想这个问题已经回答了 . 谢谢!

相关问题