该项目使用的python编程环境是2.7.10;所须要使用的第三方包有:
python
twisted==15.5.0 protobuf==2.6.1 PyYAML==3.11 enum # dev suite sphinx ipython ipdb pylint pep8 mock nose coverage pyinstaller
所使用的虚拟机是centos7,自带python2.7.5;可是不包含pip和setuptools工具;需本身进行下载,而后安装;linux
1:安装pip、setuptools,首先将下载的tar.gz格式的安装包进行解压,而后进入根目录,经过python setup.py install命令安装便可
编程
2:除了protobuf和twisted均可以经过pip install {script_name}进行安装;ubuntu
3:twisted安装较为复杂,直接经过pip install twisted==15.5.0安装会报缺乏python.h文件,这是由于安装twisted的时候须要安装python-devel,可是python-devel不是很好找的缘由有二:centos
1.在centos下是python-devel,在ubuntu下称之为python-dev; 2.yum search python | grep -i devel,这条命令能找到适配虚拟机环境中python相对应的python-devel包而后进行安装便可;
4:protobuf安装也较困难,经过pip install twisted安装也不能成功;至今我也没明白后面装成功的真正缘由;只能把失败到成功所作的动做进行记录一下:
python2.7
先将安装包进行解压,进入根目录,依次执行:工具
./configure make make install
而后执行protoc --version,显示libprotoc 2.6.1即表示安装成功;ui
进入根本录中的python文件夹,执行python setup.py install会显示安装成功;google
而后经过pyinstaller 进行打包,pyinstaller我是经过安装包进行解压编译安装的;经过如下命令进行打包;如下的main.py是工程中的入口文件:centos7
python pyinstaller.py -F /home/abc/robot/project/Robot_sh/robot/main.py
在生成的文件夹main中子文件夹dist包含main可执行文件,还须要把配置文件放入dist目录下;
而后在dist目录下执行
./main
会报以下错:
这个错的缘由是protobuf没有彻底打包进可执行文件中;
后来在centos下安装pycharm;本人用的版本:pycharm-community-5.0.4;将安装包进行解压后,在根目录下的bin目录执行如下命令:./pycharm.sh便可可视化的运行该IDE;在File-->Settings-->Project Interpreter中找到安装成功的protobuf,鼠标选中安装的protobuf的那行点击右上角减号,将其卸掉;而后再点击右上角+号经过该搜索找到protobuf,选定版本从新进行安装protobuf;若是安装成功了;说明protobuf已经成功进行安装了;
而后再作如下操做:
python pyinstaller.py -F /home/abc/robot/project/Robot_sh/robot/main.py # 在pyinstaller目录下打包 cp -rf /home/abc/robot/project/Robot_sh/robot/robot.yaml robot.yaml # 在dist目录下将配置文件拷入 tar -zcvf robot_sh_V0.5.tar.gz ./* # 经过tar命令进行打包名为robot_sh_V0.5.tar.gz安装包 项目需求设置临时环境变量: export PYTHONPATH=$PYTHONPATH:/home/abc/robot/project/Robot_sh
linux下环境编程的朋友可能会更加简单:
1.经过pip install pyinstaller安装pyinstaller 2.新建一个存放打包后文件的文件夹,在该文件夹根目录中执行pyinstaller -F /home/abc/robot/project/Robot_sh/robot/main.py(本身linux环境中的的main文件位置,下同),在文件夹中会生成build、dist文件夹、main.spec文件;进入dist文件夹,有个main文件;该main文件就是可执行文件了; 3.将工程中的配置文件robot.yaml拷入dist目录下:cp -rf /home/abc/robot/project/Robot_sh/robot/robot.yaml robot.yaml 4.在dist根目录下执行./main;观察是否报错;若是不报错就说明该可执行文件打包成功; 5.修改main的名称,mv main robot 6.打包成tar.gz格式包,在dist目录下:tar -zcvf robot_sh_V0.5.tar.gz /* 7.若是在第4步报错的话,如no module named pkg_resources,说明您的protobuf没有彻底打包进去;
注意的问题:
若是您自带的python环境是2.6的,那么在linux下安装python2.7的时候千万要注意不要简单粗暴的直接安装,自带的python2.6会部分被覆盖;致使两个python环境会很是乱。具体正确操做可自行google;