⌨️ 脚本开发环境的配置
注意
以下内容已过时,请直接使用Pycharm + KBEX 插件,更接近原生开发体验
Python的开发环境相对来说是比较简单的,这节中我们将阐述Python的安装、环境变量、IDE的选择和建议。
本文提供开发时的智能提示文件:tips文件
Python 安装:
Linux下Python安装
Linux本身就支持Python,一般来说不需要进行安装。但是根据系统版本的不同,可能Python版本稍旧,此时就需要进行主动安装了。我们推荐选择Python3.6.x。
1:首先查看当前Python版本:
这里显示是2.7.5,需要更新。
2:下载:
进入Python3.6.x选择需要的版本,如3.6.1,拿到下载地址,输入
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
3:解压缩并安装
tar -zxvf Python-3.6.1.tgz
cd Python-3.6.1/
./configure
如果执行./configure
时报错:
configure: error: no acceptable C compiler found in $PATH
说明没有合适的编译器,此时需要安装/升级gcc及其它依赖包。
yum install make gcc gcc-c++
./configure

4:编译
配置完成之后,就可以编译了:
漫长的等待……完成后,安装:
5:验证
安装成功以后,就可以查看 Python 的版本了:
# python -V
Python 2.7.5
# python3 -V
Python 3.6.1
一个是旧版本 2.x,另外一个是新版本 3.x。
**注意:**在 /usr/local/bin/ 下有一个 python3 的链接,指向 bin 目录下的 python 3.6.1。
6:设置 3.x 为默认版本
查看 Python 的路径,在 /usr/bin 下面。可以看到 python 链接的是 python 2.7,所以,执行 python 就相当于执行 python 2.7。
# ls -al /usr/bin | grep python
-rwxr-xr-x. 1 root root 11216 12月 1 2015 abrt-action-analyze-python
lrwxrwxrwx. 1 root root 7 8月 30 12:11 python -> python2
lrwxrwxrwx. 1 root root 9 8月 30 12:11 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 11月 20 2015 python2.7
将原来 python 的软链接重命名,并将python 链接至 python3:
# mv /usr/bin/python /usr/bin/python.bak
# ln -s /usr/local/bin/python3 /usr/bin/python
这时,再查看 Python 的版本:
输出的是 3.x,说明已经使用的是 python3了。ok,Linux下的python 3.6.x安装完毕!
Windows下Python安装
在Windows下必须有Python的环境。Python获取见Python官网。推荐选择Python3.6.x。
使用exe安装时,一路采用默认即可,安装完毕后,会自动配置环境变量。通过CMD,输入python,测试一下python的环境是否安装正确。
从图中可以看到。我们安装的3.6.1版本,此时说明python环境ok。
环境变量配置:
默认使用安装包安装完毕后,环境变量会自动配置进Path
中去,但有些时候需要自定义时,需要进行手动添加。在Windows->我的电脑->属性->高级->环境变量下添加,见下图:
把路径修改成你自己的Python安装路径即可。
IDE(Integrated Development Environment):
现在主流的Python IDE不外乎有jetbrains的PyCharm、Sublime Text、Eclipse + Pydev等。
PyCharm
PyCharm 是由 JetBrains 打造的一款 Python IDE。
PyCharm 具备一般 Python IDE 的功能,比如:调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。
另外,PyCharm 还提供了一些很好的功能用于 Django 开发,同时支持 Google App Engine,更酷的是,PyCharm 支持 IronPython。
PyCharm 官方下载地址:http://www.jetbrains.com/pycharm/download/
效果图查看:

Sublime Text
Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,Python 的插件,代码段等。还可自定义键绑定,菜单和工具栏。
Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。
Sublime Text 是一个跨平台的编辑器,同时支持 Windows、Linux、Mac OS X等操作系统。
效果图查看:

使用Sublime Text 2的插件扩展功能,你可以轻松的打造一款不错的 Python IDE,以下推荐几款插件(你可以找到更多):
- CodeIntel:自动补全+成员/方法提示(强烈推荐)
- SublimeREPL:用于运行和调试一些需要交互的程序(E.G. 使用了Input()的程序)
- Bracket Highlighter:括号匹配及高亮
- SublimeLinter:代码pep8格式检查
Eclipse + Pydev
采用Eclipse加上Pydev的插件,组成了Python的开发环境。 详情见官网:Eclipse
在Eclipse的基础上,安装Pydev也很方便,如下图即可:

点击Add,添加pydev的安装地址:http://pydev.org/updates/,如下图所示。

KBE的开发配置建议:
我们拿Pycharm举例,其他的IDE的配置类似。
1.提供KBEngine的提示能力
我们知道引擎脚本开发中的一些API是引擎内置的,所以在py开发时没有提示,需要开发者对API非常熟悉甚至背下来。对于新手来说,一遍看API手册一遍写代码,会非常影响效率。为此,我们把API输出成Python文件(模块),使IDE的Python编译器可以解析,并提供提示的能力。
1.1 生成KBEngine的Tips
之前的tips生成是由chm文档文件的html源代码生成,由于现API手册已经改版到新的网站系统中去,暂时没有给开发者自己去生成的方式,以后也不会提供这方式。那我们怎么获得tips相关的py模块文件呢?
别急,我们会提供专门的下载页面,并持续保持更新(不同大版本会划分不同文件)。如下:
tips文件下载:点我下载tips文件
解压出来,所有的服务器app进程都按照文件夹划分出来,对应配置到Pycharm的编辑器下即可(如何配置在下面的内容中会说明)。
1.2 配置Pycharm的编译器
我们强烈建议,每个app进程的项目单独创建Pycharm project,这样在开发时既可以多人协作,同时代码提示功能也不会出现冲突。
由于引擎的核心模块名都叫
kbengine.py
,在同一个project时,编译器无法区分你是baseapp里的kbengine模块还是cellapp里的kbengine模块。此时,两个模块有差异的代码就无法正确提示。
1.2.1:创建一个project,我们以loginapp为例:

我们选择Pure Python的Project类型,并在Project Location选择{项目资产库}/scripts/login
,Project Interperter选择New environment新的虚拟环境(因为需要每个app都有自己的环境,并配置自己的tips模块),虚拟环境的Location可以设置为对应app的脚本文件夹(当前例子是login
)下venv
,这样与所要开发的app的文件夹结构保持一致。
点击 Create
即可,Pycharm会帮你做剩下的事情。生成好的Project如下图:

1.2.2:增加与开发相关的文件夹
在开发时,除了专项的app内部开发,经常会碰到一些共用的模块,比如我们默认资产库中的common
、data
、entity_defs
、server_common
以及user_type
,都是在不同app上共用的。我们需要增加进Project Structure配置中,使得更加IDE环境完整。点击File,在下拉列表中选择Settings,如下图:

选中Project: login中的Project Structure,并点击右侧Add Content Root

弹出框中,我们先选择common
文件夹。

ok,一个相关的文件夹添加完毕啦。

我们来看下Project视图的变化:

同理,我们需要添加data
、entity_defs
、server_common
以及user_type
文件夹,以及你自己添加的其他文件夹(一般是用于共用目的的)。结果如下:
这样就能在不同的app开发时,使用得到共用的东西。比如在entity_defs
立刻查看和修改某个Entity的定义,通过data
拿到所有数据对象,使用所有自定义的数据类型(user_type
中)等等。
1.2.3:编译器中增加Tips提示和共用模块
虽然有了共用文件夹可以进行查看和修改,但是编译环境还是没有,比如无法对data
中的对象进行import和使用,也无法使用common
中的一些辅助模块(在IDE中会提示错误,实际使用还是不妨碍的)。
还是在Settings中,选中Project: login中的Project Interpreter,如果是No interpreter可以新增,如果有则选中。

1.2.4:新增interpreter
点击小齿轮,选择Add Local…,见图:

和新增Project时类似,点击OK,剩下的Pycharm会帮你做。等待片刻。。。。结果如下:

1.2.5:配置Interpreter Paths
再次点击小齿轮,选择Show All,选择刚才生成的Interpreter(Python 3.6(login)),点击右侧Show paths

弹出Interpreter Paths窗口,我们点击右侧加号,增加一个Path。

再弹出路径选择窗口,我们选择common
、data
、server_common
以及user_type
(entity_defs只是配置文件,没有编译意义,所以这里不选择),结果如下:

点击OK,保存即可。同样的,我们要添加我们的Tips所在的文件夹,这个例子中我们选择 tips/loginapp
添加进interpreter path中即可。
OK!我们完成了在编译器中增加Tips提示和共用模块。我们来看看效果如何!
1.3 Showtime
我们看下loginapp中的kbemain.py,尝试在loginapp ready时增加一个timer计时器。
先在onLoginAppReady
方法下,输入一个K,如下图:

赞!我们的KBEngine模块已经正确的提示出来了!!我们继续:

完工!在这些利器的配合下,我们可以快速的进行引擎的开发。
2. 基于app的项目划分
因为编译器的特殊性,我们建议按照引擎的app进行项目的划分。每个app进程的项目单独创建Pycharm project,这样在开发时既可以多人协作,同时代码提示功能也不会出现冲突。
由于引擎的核心模块名都叫
kbengine.py
,在同一个project时,编译器无法区分你是baseapp里的kbengine模块还是cellapp里的kbengine模块。此时,两个模块有差异的代码就无法正确提示。