【发布时间】:2013-04-03 15:42:10
【问题描述】:
我在部署一个我在本地使用 dev_appserver 1.7.6 在带有 buildout 的 virtualenv 中开发的应用程序时遇到了一些困难。当我部署时,我的本地 dist 文件夹也被部署,这会导致与应用引擎提供的库发生冲突
我的应用程序依赖于 pycrypto,因此为了在本地运行它,我已将 pycrypto 添加到我的 buildout.cfg 中。这会在 $app/dist/Crypto 中安装 pycrypto。一切都在本地运行得很好,但是当我部署 $app/dist 文件夹时也部署了。然后,App Engine 在尝试导入 DES3 时报错 ImportError
File "/path/to/my/app/dist/Crypto/Cipher/DES3.py", line 67, in <module>
from Crypto.Cipher import _DES3
ImportError: dynamic module does not define init function (init_DES3)
您可以从错误日志中看到它正在尝试使用 $app/dist 中的 pycrypto 而不是 google 提供的版本。
如何在 virtualenv 中使用 pycrypto 并仍然部署到 Google App Engine,而不必从我的 skip_files 部分评论/取消评论 dist/Crypto?
我现在只使用 python 几个月了,所以我认为由于缺乏环境经验,我遗漏了一些明显的东西。
【问题讨论】:
标签: google-app-engine virtualenv buildout