gpt4 book ai didi

google-app-engine - Google App Engine (1.7.0) 上的 PyCrypto 与 Mac OS X 10.8 上的 Python 2.7 导致 ImportError

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:59 24 4
gpt4 key购买 nike

我正在尝试让 PyC​​rypto 与 Google App Engine 一起工作,并且我对我遇到的一个问题进行了冗长的描述,该问题被报告为 issue 7925 适用于 Google App Engine。

基本上,我不知道在 Mac OS X 10.8 上以 dev_appserver.py 将使用它的方式安装 PyCrypto 的明智方法 - 除了将 Crypto/ 进入项目的根目录。

不幸的是,当项目在项目根目录中使用 Crypto/ 部署时,似乎刚刚出现了导致项目崩溃的问题。

也许可以编辑或修补 GAE 代码,但我对 GAE 的代码还不够熟悉,无法轻松地这样做。我看到的所有建议都是针对 Python2.5 和 Mac OS X < 10.8。

如果有关于让 PyC​​rypto 在 Mac OS X 10.8 上与 GAE 开发应用程序服务器一起工作的替代的、明智的方法的想法,我将不胜感激。

最佳答案

这是我不得不从事的疯狂行为:

  1. 删除所有版本的 PyCrypto

  2. https://github.com/dlitz/pycrypto/tags 下载 PyCrypto v2.3并安装

    dlitz-pycrypto-7e141bd/$ python setup.py build
    dlitz-pycrypto-7e141bd/$ sudo python setup.py install

    (2.6 版没有 blockalgo 包)

  3. 应用于 /Application/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools 中的 dev_appserver_import_hook.py/ comment 1 of Issue 1627 中建议的补丁,即添加

    try:
    import Crypto as _CryptoTest
    _CryptoBase = os.path.dirname(_CryptoTest.__file__).replace(
    os.path.join(os.path.dirname(os.__file__), 'site-packages'),
    "") # removes preceding slash
    del _CryptoTest
    except ImportError:
    logging.info("No Crypto could be imported")
    _CryptoBase = "Crypto"

    314行左右

    然后修改 ALLOWED_SITE_PACKAGES 行

    ALLOWED_SITE_PACKAGE_FILES = set(
    os.path.normcase(os.path.abspath(os.path.join(
    os.path.dirname(os.__file__), 'site-packages', path)))

    ALLOWED_SITE_PACKAGE_FILES = set(
    path

    并在 GeneratePythonPaths 调用 ALLOWED_SITE_PACKAGES 时将所有引用从 'Crypto' 更改为 _CryptoBase

    (我希望如果有人从命令行使用 dev_appserver,即/usr/local/google_appengine,dev_appserver_import_hook.py 会在那里被修改)

  4. 重新启动项目。

显然,每当更新 Google App Engine 时,都必须冲洗并重复补丁。


注意 — 此问题似乎已在补丁 1.7.4 released 14 Dec. 2012 中得到修复.

关于google-app-engine - Google App Engine (1.7.0) 上的 PyCrypto 与 Mac OS X 10.8 上的 Python 2.7 导致 ImportError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11788508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com