我在使用 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 几个月了,所以我认为由于缺乏环境经验,我遗漏了一些明显的东西。