我需要一个名为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
。问题是我在ImportError: No module named qrcode.main
文件上获得了__init__.py
。
__init__.py:
from qrcode.main import QRCode, make
from qrcode.constants import *
from qrcode import image
qrcode.main
是qrcode
包中的一个.py文件(查看整个。{
包,检查存储库链接here)
我已经看了,我找不到有什么问题。我很感激你的帮助。谢谢!
我搜索的其他问题:
AppEngine server cannot import atom module
Import custom package in python google app engine
Importing nested modules in Python
答案 0 :(得分:0)
Python路径将包含app.yaml所在的目录。如果那是您的app
模块所在的位置,那么您应该使用绝对导入:
# in index.py
from app.handlers import my_handler
# in my_handler.py
from app.util.qrcode import qrcode
答案 1 :(得分:0)
由于某种原因(我不知道),包裹不知道自己的名字。为了使其工作,我不得不删除包文件上对 qrcode 的所有引用。我新的__init__.py
导入成为:
from main import QRCode, make
from constants import *
import image
所有.py文件的导入都需要更改,我必须在PIL
中包含app.yaml
(之前我忘记了,但从来没有足够的面对这个错误= P)。< / p>
到现在为止我还是无法生成图像,但我没有更多的导入错误,所以我想这个问题已经回答了。谢谢!