随笔 - 137  文章 - 1  trackbacks - 0
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿

随笔分类

随笔档案

收藏夹

调试技巧

搜索

  •  

最新评论

阅读排行榜

评论排行榜

安装步骤

1. 编译环境准备

准备一下编译环境,防止出现安装错误

 yum groupinstall 'Development Tools'  yum install zlib-devel bzip2-devel openssl-devel ncurese-devel

2. 下载python3.5代码包

这里选择下载最近版本的Python3.5.1 (2016-05)

 wget https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz

3. 编译

 tar Jxvf Python-3.5.1.tar.xz  cd Python-3.5.1  ./configure --prefix=/usr/local/python3  make && make install

Python3.5.1 安装编译安装时会默认安装 pip 如果出现:
Ignoring ensurepip failure: pip 1.5.6 requires SSL/TLS
未安装编译环境,重新安装该编译环境并重新编译 Python3.5.1
yum install zlib-devel bzip2-devel openssl-devel ncurese-devel

4. 更换系统默认 Python 版本

  1. 备份旧版本 Python
    mv /usr/bin/python /usr/bin/python2.7
  2. 新建指向新版本 Python 以及 pip 的软连接
    ln -s /usr/local/python3/bin/python3.5 /usr/bin/python
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
  3. 检验 Python 及 pip 版本
    python -V
    pip -V

5.更新 yum 相关设置

因 yum 的功能依赖 Python2 更改默认 Python版本后会导致 yum无法正常工作
执行以下命令:
vi /usr/bin/yum
打开文件,修改第一行为:
#!/usr/bin/python2.7

若执行 yum 时出现以下错误:
File "/usr/libexec/urlgrabber-ext-down", line 28
执行以下更改,打开该文件并修改首行为:
#!/usr/bin/python2.7

6. 其他

执行 yum 时,若出现以下 Error:
Error: Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
执行以下安装可解决:
yum install deltarpm

版本共存

如果你希望同时使用多版本 Python ,例如在保持系统原有版本 Python2.x 不变的情况下使用 Python 3.x,可以考虑使用 virtualenv 构建合适版本的虚拟环境:

# python2.7 环境下搭建 python3.x 环境 #安装 pip yum install python-setuptools easy_install pip #安装virtualenv pip install virtualenv  #在当前文件夹下构建虚拟环境 virtualenv -p /usr/local/python3/bin/python3 venv #启动虚拟环境 source venv/bin/activate  #退出虚拟环境 deactivate

virtualenv 详细使用说明,参见 Virtualenv



作者:少年的狐先生
链接:http://www.jianshu.com/p/8bd6e0695d7f
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2017-09-12 11:33 长戟十三千 阅读(405) | 评论 (0)编辑 收藏
1、代码规范定义
   proto代码规范
   变量、结构体、函数、命名规范

2、架构文档
   架构拆分
   模块功能拆分
   接口定义及调用规则
   模块解耦设计
   表格、数据库、协议选择

3、架构设计
   出生服务器
   战斗服务器
   其他服务器
   服务器间均衡策略
   服务器集群策略,启动,关闭

4、服务器模块架构设计
   网络模块
   计时器
   逻辑模块
   数据库模块
   模块间通信,线程间RPC
   模块间解耦
   LUA:加载,调用,热更,异常处理
   so调用:加载,调用【上层模块,同级模块】,热更,异常处理
   数据管理模块:加载,删除,更新【客户端,数据库】
   异常处理:逻辑日志,dump, gdb反向调试,堆栈信息日志
   协议模块:protobuf, 多个文件
   表格模块:pb文件及热更新

5、一些开源库
grpc
libev
libgo协程
protobuf
hiredis
mysql
zeromq
kafuka
zookeeper
git
jekins
docker

   
   
posted @ 2017-08-29 18:43 长戟十三千 阅读(223) | 评论 (0)编辑 收藏
1、gdb7 提供了反向调试 (reverse debug)的功能
Reverse-continue ('rc')Continueprogram being debugged but run it in reverse
Reverse-finishExecute backward until just before the selected stack frame is called
Reverse-next ('rn')Step program backward, proceeding through subroutine calls.
Reverse-nexti ('rni')Step backward one instruction, but proceed through called subroutines.
Reverse-step ('rs')Step program backward until it reaches the beginning of a previousline
Reverse-stepiStep backward exactly one instruction
set exec-directionSet direction of execution.
2、第三方的方向调试工具 rr : Record and Replay Framework
https://github.com/mozilla/rr
posted @ 2017-08-29 18:21 长戟十三千 阅读(580) | 评论 (0)编辑 收藏
wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
sudo tar -zxvf go1.8.linux-amd64.tar.gz -C /usr/local/
mkdir ~/go
echo 'export GOROOT=/usr/local/go' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> ~/.bashrc
source ~/.bashrc

Enjoy it!
posted @ 2017-07-25 15:28 长戟十三千 阅读(242) | 评论 (0)编辑 收藏
1、可重用
一个服务创建后能用于多个应用和业务流程。
2、松耦合
服务请求者到服务提供者的绑定与服务之间应该是松耦合的。因此,服务请求者不需要知道服务提供者实现的技术细节,例如程序语言、底层平台等等。
3、明确定义的接口
服务交互必须是明确定义的。Web服务描述语言(Web Services Description Language,WSDL)是用于描述服务请求者所要求的绑定到服务提供者的细节。WSDL不包括服务实现的任何技术细节。服务请求者不知道也不关心服务究竟是由哪种程序设计语言编写的。
4、无状态的服务设计
服务应该是独立的、自包含的请求,在实现时它不需要获取从一个请求到另一个请求的信息或状态。服务不应该依赖于其他服务的上下文和状态。当产生依赖时,它们可以定义成通用业务流程、函数和 数据模型。
5、基于开放标准
当前SOA的实现形式是Web服务,基于的是公开的W3C及其他公认标准.采用第一代Web服务定义的SOAP、WSDL和UDDI以及第二代Web服务定义的WS-*来实现SOA。

思考:与ECS的区别,如何实现无状态服务,并将依赖定义为通用接口[单例的system, 用于提供通用服务,减少系统间的依赖调用]。
posted @ 2017-07-18 20:39 长戟十三千 阅读(315) | 评论 (0)编辑 收藏
目的:子类对象构造时,区分类型ID
实现:利用模板制作构造工具。
 1 class BaseSystem : entityx::help::NonCopyable {
 2  public:
 3   typedef size_t Family;
 4   static Family family_counter_;
 5 };
 6 
 7 template <typename Derived>
 8 class System : public BaseSystem {
 9  public:
10   // 这里,取得类型ID
11   static Family family() {
12     static Family family = family_counter_++;
13     return family;
14   }
15 };
16 
posted @ 2017-07-12 21:40 长戟十三千 阅读(209) | 评论 (0)编辑 收藏
    服务器宕机的代价是巨大的,好的书写和架构习惯可以有效减少宕机

   1、不跨作用域使用指针,使用时确保有效。

   2、使用ID作为操作的依据。

   3、函数入口地址处添加DUMP的堆栈纪录宏定义,宕机时可查找出错位置。

   4、区分状态,在相邻关联模块进行统一的互斥操作判定。

   

posted @ 2011-10-10 14:16 长戟十三千 阅读(233) | 评论 (0)编辑 收藏
仅列出标题
共14页: First 6 7 8 9 10 11 12 13 14