问题描述
我无法在Google App Engine下正确导入reportlab。 根据以下 (以及网络上的其他几个地方):
“您所要做的就是下载它,并将'reportab'目录复制到应用程序的根目录中。”
这样做时(我从下载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版才有问题
1楼
如果只是将reportlab zip解压缩到应用程序的根目录中,则它将无法正常工作,因为reportlab zip是用于使用setup.py
的本地设置的,而您在appengine中不会使用。
您应该在zip文件中查找src目录,并在其中查找一个reportlab目录-在我的情况下,zip文件的内容将为reportlab-3.0/src/reportlab
复制/移动该reportlab
目录至应用程序的根目录。
您可能还应该阅读python中的import和modules如何工作。 如果您对此有所了解,可以自己查看zip内容的结构。
如果要使用图像,也请注意先决条件。 如果这样做,则需要在本地安装PIL,并在app.yaml中启用它,但是您不会部署PIL代码。 您可以在Appengine第3部分库文档中阅读有关此内容的更多信息。
2楼
在命令pip install reportlab
之后,检查reportlab安装的目标路径,然后在python项目ln -s /usr/lib/python2.7/dist-packages/reportlab
的根目录下建立一个指向reportlab的链接。
3楼
您需要移动到lib的父目录。 然后,您可以使用以下命令安装reportlab:
pip install -t lib reportlab