Google app engine 在dev中使用与prod中相同的Python版本

Google app engine 在dev中使用与prod中相同的Python版本,google-app-engine,Google App Engine,如何在开发中使用与生产中相同的python解释器?生产打印中的交互式控制台: 2.7.5 (default, Jul 9 2013, 19:12:58) [GCC 4.4.3] 我的本地主机交互控制台打印: 2.7.5 (default, Mar 9 2014, 22:15:05) [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] 这两个版本不兼容,正在破坏我的代码。具体而言: 生产中: print(type(5555555

如何在开发中使用与生产中相同的python解释器?生产打印中的交互式控制台:

2.7.5 (default, Jul  9 2013, 19:12:58) 
[GCC 4.4.3]
我的本地主机交互控制台打印:

2.7.5 (default, Mar  9 2014, 22:15:05) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)]
这两个版本不兼容,正在破坏我的代码。具体而言:

生产中:

print(type(5555555555))
# <type 'long'>
打印(类型(5555))
# 
在本地主机上:

print(type(5555555555))
# <type 'int'>
打印(类型(5555))
# 
我该怎么做才能使我的本地python版本始终与生产中的版本相同


更新:我发现AppEngine应用程序运行在32位体系结构上;而我的开发机器在64位体系结构上运行。

您的mac同时安装了32位和64位版本的Python:

$ python
Python 2.7.8 (v2.7.8:ee879c0ffa11, Jun 29 2014, 21:07:35) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print(type(5555555555))
<type 'int'>
>>> ^D

$ python-32 
Python 2.7.8 (v2.7.8:ee879c0ffa11, Jun 29 2014, 21:07:35) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print(type(5555555555))
<type 'long'>
$python
Python 2.7.8(v2.7.8:ee879c0ffa11,2014年6月29日,21:07:35)
[GCC 4.2.1(苹果公司建造5666)(dot 3)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>打印(类型(5555))
>>>^D
$python-32
Python 2.7.8(v2.7.8:ee879c0ffa11,2014年6月29日,21:07:35)
[GCC 4.2.1(苹果公司建造5666)(dot 3)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>打印(类型(5555))
我刚刚检查过,dev appserver确实使用了64位版本。不确定我是否会称之为bug,但是否值得向谷歌提交bug报告

解决这个问题最干净的方法可能是单独安装32位Python,然后调整路径,以便dev appserver使用它


也就是说,您最好更改代码,使其不依赖于所使用的Python版本。

dev-appserver使用我的默认Python设置运行<代码>#/usr/bin/env python我无法使用arch-i386运行dev_appserver.py,因为如果我们查看源代码,dev_appserver.py实际上是通过execfile()运行的。请查看/usr/bin/env。通过将路径更改为指向您安装的32位版本的Python来更改默认Python设置。