1

我需要一个名为qrcode的非标准 App Engine 包。它是一个纯 python 库,仅依赖于 PIL,由 App Engine 支持。

我的文件夹结构是:

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

index.py我映射到my_handler.py和在处理程序类的 get 方法之一中my_handler.py调用。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.mainqrcode包内的一个 .py 文件(要查看整个包,请查看此处链接的存储库)

我已经看过了,我找不到问题所在。我会很感激你的帮助。谢谢!

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

4

2 回答 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
于 2013-07-23T18:21:44.217 回答
0

出于某种原因(我不知道),这个包不知道它自己的名字。为了使它工作,我必须删除包文件上对qrcode的所有引用。我的新__init__.py进口变成了:

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

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

到目前为止,我仍然无法生成图像,但我没有更多的导入错误,所以我想问题已经得到解答。谢谢!

于 2013-07-27T21:01:56.197 回答