Install psycopg2 on mac sierra

需要在我的mbp上进行数据入库测试,因此就需要安装psycopg2,但安装的时候一直有提示:

ld: library not found for -lssl

clang: error: linker command failed with exit code 1 (use -v to see invocation)

开始搜索以为库的位置不对,比如之前类似的问题:http://stackoverflow.com/questions/27264574/import-psycopg2-library-not-loaded-libssl-1-0-0-dylib

后来感觉不太对,又加上sierra关键词找,果然找到一个类似问题:
http://stackoverflow.com/questions/39767810/cant-install-psycopg2-package-through-pip-install-is-this-because-of-sierra
发现解决方法非常简单,就是安装xcode-select工具。

xcode-select –install

然后再安装psycopg2就没有任何问题了:

sudo pip install psycopg2

python下非常规utf8编码处理

最近在和微博页面打交道,发现微博返回的页面数据多数都是内嵌在javascript下的,而带来的后果就是其中的中文字符是json编码后的utf8编码。
而在python程序中获取页面后得到的结果大致有这样的字符:
"\u003Cp\u003E"
在python中这样可以直接打印出来:
print u"\u003Cp\u003E"
但作为一个变量,不能这样简单处理,需要进行编码转换:
str="\u003Cp\u003E"
print str.decode('unicode-escape')

shell下python脚本的输出转向

一个用python写的脚本,在本地测试的时候用python的print输出了一些状态信息,用于观测程序运行的状况。脚本自身比较耗时(中间故意设置了延时)。
在部署到服务器上后,需要后台运行,因此就想当然的转向输出到一个文本log中:
python script.py > output.log &
结果发现log文件一直是空白(程序在持续运行中),但正常应该是有文本记录的。结果网上搜索才发现,python脚本默认是在脚本整个执行完成后才输出的。(参考:https://unix.stackexchange.com/questions/182537/write-python-stdout-to-file-immediately/182542#182542
当然,知道问题后解决方案也很简单:
python -u script.py > output.log &

Compile & install GRASS 6.4 on ubuntu intrepid

首先,需要自己重新编译GDAL,目前UBUNTU源里的GDAL有BUG。
然后,从svn中下载grass 6.4:

svn co https://svn.osgeo.org/grass/grass/branches/develbranch_6 grass-6.4
cd grass-6.4/debian
svn://svn.debian.org/pkg-grass/packages/grass/branches/6.4/debian debiangis
mv debiangis/* .

目前,这个DEB控制还有点小问题,需要自己作些修改:

nano grass.conf

把路径修改为:

/usr/lib/grass64/lib

然后修改grass-preview-doc.links,修改为:

usr/share/doc/grass-preview-doc/html usr/lib/grass64/docs/html

还需要连接一个so库:

locate _gdi_.so

我的机器上有两个地址,一个是python 2.4,一个是python 2.5,我选择了python 2.5的地址,然后作了个连接:

sudo ln -s /usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_gdi_.so /usr/loca/lib/libgdi.so

然后就可以编译了:

debuild binary

然后就可以安装了,你若不想安装,可以使用我已经编译好的,(添加我自己的源):

http://ubuntu.westgis.ac.cn/ubuntu

然后sudo aptitude install grass-preview就可以了。

如要安装文档:

sudo aptitude install grass-preview-doc
sudo mkdir /usr/lib/grass64/docs
sudo ln -s /usr/share/doc/grass-preview-doc/html /usr/lib/grass64/docs/