Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine Google App Engine(1.7.0)上的PyCrypto和Mac OS X 10.8上的Python2.7会引起严重的恐怖_Google App Engine_Pycrypto - Fatal编程技术网

Google app engine Google App Engine(1.7.0)上的PyCrypto和Mac OS X 10.8上的Python2.7会引起严重的恐怖

Google app engine Google App Engine(1.7.0)上的PyCrypto和Mac OS X 10.8上的Python2.7会引起严重的恐怖,google-app-engine,pycrypto,Google App Engine,Pycrypto,我正在尝试让PyCrypto与Google App Engine一起工作,我对我遇到的一个问题进行了详细的描述,该问题被报告为Google App Engine的 基本上,我不知道在Mac OS X 10.8上安装PyCrypto的合理方法,除了将Crypto/放入项目的根目录之外,还可以使用dev_appserver.py 不幸的是,在项目根目录中部署Crypto/时,似乎突然出现了一个问题,导致项目崩溃 也许可以编辑或修补GAE代码,但我对GAE的代码还不太熟悉,所以不适合这样做。我看到的所

我正在尝试让PyCrypto与Google App Engine一起工作,我对我遇到的一个问题进行了详细的描述,该问题被报告为Google App Engine的

基本上,我不知道在Mac OS X 10.8上安装PyCrypto的合理方法,除了将
Crypto/
放入项目的根目录之外,还可以使用
dev_appserver.py

不幸的是,在项目根目录中部署
Crypto/
时,似乎突然出现了一个问题,导致项目崩溃

也许可以编辑或修补GAE代码,但我对GAE的代码还不太熟悉,所以不适合这样做。我看到的所有建议都是针对Python2.5和MacOSX<10.8的


如果您能想到其他明智的方法让PyCrypto与Mac OS X 10.8上的GAE development appserver合作,我将不胜感激。

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

  • 删除PyCrypto的所有版本

  • 从下载PyCrypto v2.3,并与一起安装

    dlitz-pycrypto-7e141bd/$ python setup.py build
    dlitz-pycrypto-7e141bd/$ sudo python setup.py install
    
    (版本2.6带有no
    blockalgo
    包的障碍)

  • 应用于
    /Application/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine default.bundle/Contents/Resources/google\u appengine/google/appengine/tools/
    中建议的补丁,即添加

    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线附近

    然后从中修改允许的\u站点\u包行

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

    在允许的站点包的
    生成路径调用中,将所有引用从
    'Crypto'
    更改为
    \u CryptoBase

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

  • 重新启动项目

  • 显然,每当谷歌应用程序引擎更新时,用户必须冲洗并重复补丁



    注意-此问题似乎已在修补程序中修复。

    这仍然是GAE 1.7.2中的一个问题,您错过了更改行的步骤:
    ALLOWED_SITE_PACKAGE_FILES=set(path#os.path.normcase(os.path.abspath(os.path.join(#os.path.dirname(os.u file)),'SITE packages',path)))
    EDIT:gah,评论中不能有关于堆栈溢出的换行符……你需要注释掉路径操作,只需将路径输出到集合构造函数。你链接的1627期的补丁中有这个。谢谢@Dylan。我已经更改了一个wiki的答案-在我有机会看到这个问题之前会有一点,但请随时更新a我有一个类似的问题,下面是我如何解决的:
    ALLOWED_SITE_PACKAGE_FILES = set(
        path