Google app engine Google App Engine(1.7.0)上的PyCrypto和Mac OS X 10.8上的Python2.7会引起严重的恐怖
我正在尝试让PyCrypto与Google App Engine一起工作,我对我遇到的一个问题进行了详细的描述,该问题被报告为Google App Engine的 基本上,我不知道在Mac OS X 10.8上安装PyCrypto的合理方法,除了将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的代码还不太熟悉,所以不适合这样做。我看到的所
Crypto/
放入项目的根目录之外,还可以使用dev_appserver.py
不幸的是,在项目根目录中部署Crypto/
时,似乎突然出现了一个问题,导致项目崩溃
也许可以编辑或修补GAE代码,但我对GAE的代码还不太熟悉,所以不适合这样做。我看到的所有建议都是针对Python2.5和MacOSX<10.8的
如果您能想到其他明智的方法让PyCrypto与Mac OS X 10.8上的GAE development appserver合作,我将不胜感激。这是我不得不从事的疯狂行为:
dlitz-pycrypto-7e141bd/$ python setup.py build
dlitz-pycrypto-7e141bd/$ sudo python setup.py install
(版本2.6带有noblockalgo
包的障碍)/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