目录

脚本开发环境的配置

Python的开发环境相对来说是比较简单的,这节中我们将阐述Python的安装、环境变量、IDE的选择和建议。

本文提供开发时的智能提示文件:tips文件

Python 安装:

Linux下Python安装

Linux本身就支持Python,一般来说不需要进行安装。但是根据系统版本的不同,可能Python版本稍旧,此时就需要进行主动安装了。我们推荐选择Python3.6.x

1:首先查看当前Python版本:

python -v
Python 2.7.5

这里显示是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:编译

配置完成之后,就可以编译了:

make

漫长的等待……完成后,安装:

make install 

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 的版本:

# python -V
Python 3.6.1

输出的是 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/,如下图所示。

CBE的开发配置建议:

我们拿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:创建一个project,我们以loginapp为例:

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

点击Create即可,Pycharm会帮你做剩下的事情。生成好的Project如下图:

2:增加与开发相关的文件夹

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

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

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

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

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

同理,我们需要添加dataentity_defsserver_common以及user_type文件夹,以及你自己添加的其他文件夹(一般是用于共用目的的)。结果如下:

这样就能在不同的app开发时,使用得到共用的东西。比如在entity_defs立刻查看和修改某个Entity的定义,通过data拿到所有数据对象,使用所有自定义的数据类型(user_type中)等等。

3:编译器中增加Tips提示和共用模块

虽然有了共用文件夹可以进行查看和修改,但是编译环境还是没有,比如无法对data中的对象进行import和使用,也无法使用common中的一些辅助模块(在IDE中会提示错误,实际使用还是不妨碍的)。

还是在Settings中,选中Project: login中的Project Interpreter,如果是No interpreter可以新增,如果有则选中。

1:新增interpreter

点击小齿轮,选择Add Local…,见图:

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

2:配置Interpreter Paths

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

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

再弹出路径选择窗口,我们选择commondataserver_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模块。此时,两个模块有差异的代码就无法正确提示。


Copyright © 2018 Yolo Technologies. Publication: 2.0-025. Built: 2018-12-07.