Ubuntu Install Vnc

概述

由于最近开发cuda的并行运算所以需要安装VNC来调试和cuda开发。 安装X11VNC

1
sudo apt install x11vnc -y

配置访问密码:

1
sudo x11vnc -storepasswd /etc/x11vnc.pass

创建服务:

1
2
3
4
5
6
7
8
9
vi /lib/systemd/system/x11vnc.service
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target

CentOS6 升级Python2.7.X和Python3.X

简述

由于产品需要从裸机开始开发所以所有的配置和开发也是从零开始,这个导航是基于centos6.x版本升级默认的Centos的Python,升级到Python2.7或者Python3.3。我们不仅升级了Python,同样基于Python的setuptools, pip, virtualenv and pyvenv这些工具也同样安装和升级以便于项目需要。

安装基本的开发工具包

为了确保编译Python成功,先安装下面的这几个package和类库。

1
2
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

深入理解Python的With-as语句

概述

学习Python有一段时间了,最近做一个项目会涉及到文件的读取和关闭。比如:我想把一些对象序列化到文件里面,然后当我再次使用的时候,在从文件里面读取反序列化成对象。像这种操作一般都是用try…except…finally。但是经过自己对Python的研究发现会有更出色的方法,比如:with-as语句也有的人称为context manager。

With-as 用法

我们先看一下例子,当我们需要打开一个文件的时,比如:txt等,一般经常会这么操作:

1
2
3
4
5
6
7
try:
    f = file.open('test.txt','rw')
    To Do
except:
    To Do
finally:
    f.close()

这是错误,因为file.open是否打开文件是不确定,而在出现异常的时候你却关闭了已经打开的文件。文件没有打开怎么能直接关闭呢?你可以按照下面的解决方法来解决上述出现的问题。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
try:  
    f = file.open('test.txt','rw')
    To Do
except:  
    To Do
    //出现异常直接返回或者退出,这说明file并没有打开
    return/exit(-1) 

//已经成功打开file文件,所以你需要在finally中关闭打开的文件
try:  
    To Do
except:  
    To Do
finally:  
    f.close()

你会发现这么做会非常麻烦,并且try……except…..finally嵌套也比较啰嗦。那有没有好的解决办法能解决上述问题,并且还能减少代码量呢?(类似于C#中的using关键字)答案是肯定的,那就是with……as语句。With语句适用于对I/O、文件流、数据流等资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源.比如文件使用后自动关闭、线程中锁的自动获取和释放等等。 我们来看一下with-as的用法:

1
2
3
4
with open('/etc/passwd', 'r') as f:  
    for line in f:
        print line
        ... more processing code ...

这个语句执行完成之后,不管在处理文件过程中是否发生异常,都能保证 with 语句执行完毕后已经关闭了打开的文件句柄,确实比try……except……finally好多了。在这个例子中f就是上下文管理器enter()的返回值,返回的是当前文件自身的引用。Python内建对象都加入了对上下文管理器的支持,可以用在with语句中。比如:file、 threading、decimal等等,在多线程模块中,lock和条件变量也是支持with语句的。例如: