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

时间:2014-10-21 01:09:35

标签: google-app-engine

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

2.7.5 (default, Jul  9 2013, 19:12:58) 
[GCC 4.4.3]

我的localhost交互式控制台打印:

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'>

在localhost上:

print(type(5555555555))
# <type 'int'>

我能做些什么才能使我的本地python版本始终与生产版本相同?

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

1 个答案:

答案 0 :(得分:1)

你的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'>

我刚检查过,dev appserver确实使用的是64位版本。不确定我是否会称这是一个错误,但值得向Google提交错误报告。

解决此问题最简洁的方法可能是单独安装32位Python并调整路径,以便dev appserver使用它。

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