我无法在谷歌应用引擎下正确导入reportlab。根据以下guide(以及网络上的其他几个地方):
“您所要做的就是下载并将'reportab'目录复制到您应用的根目录中。”
当我这样做时(我从here下载reportlab-3.0.zip)并将其解压缩到我的应用程序的根目录中,因为我尝试使用以下行导入reportlab:
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
我收到导入错误
ImportError: No module named reportlab.pdfgen
我尝试谷歌搜索但无济于事。任何有关这方面的帮助将不胜感激,因为我不确定我还能尝试什么。非常感谢!
我尝试的另一件事是复制我的应用程序根目录下的zip下载的src目录中的内容,但这也无效。我使用它的错误是:
ImportError: Cannot re-init internal module __main__
似乎版本2.7导入没问题,只发布3.0
答案 0 :(得分:6)
如果您只是在应用程序的根目录中解压缩reportlab zip,那么它将无法工作,因为reportlab zip用于使用setup.py
的本地设置,您不在appengine中使用
你应该查看zip到src目录里面,里面是一个reportlab目录 - 在我的例子中,zip文件内容将reportlab-3.0/src/reportlab
复制/移动这个reportlab
目录到根目录你的申请。
您可能还应该了解导入和模块如何在python中工作。如果你熟悉这个,你可以自己看一下拉链内容的结构。
如果您想处理图像,还要注意先决条件。如果这样,您将需要在本地安装PIL,并在app.yaml中启用它,但是您不需要部署PIL代码。您可以在appengine第3部分库文档中阅读更多相关信息。
答案 1 :(得分:0)
在命令pip install reportlab
之后检查reportlab安装的目标路径,然后在python项目的根目录下建立到reportlab的链接ln -s /usr/lib/python2.7/dist-packages/reportlab
答案 2 :(得分:0)
您需要移动到lib的父目录。然后,您可以使用以下命令安装reportlab:
pip install -t lib reportlab