ubuntu上跑python连接pg,报错 ImportError: No module named psycopg2
ubuntu上跑python连接pg,报错 ImportError: No module named psycopg2
root@pgproxy1:~# python /home/zxw/PGWriterTest_m.py
Traceback (most recent call last):
File "/home/zxw/PGWriterTest_m.py", line 4, in <module>
import psycopg2
ImportError: No module named psycopg2
例如以下安装:
1
root@pgproxy1:~# apt-cache search psycopg2
python-psycopg2 - Python module for PostgreSQL
python-psycopg2-dbg - Python module for PostgreSQL (debug extension)
python-psycopg2-doc - Python module for PostgreSQL (documentation package)
python3-psycopg2 - Python 3 module for PostgreSQL
python3-psycopg2-dbg - Python 3 module for PostgreSQL (debug extension)
2
root@pgproxy1:~# python -V
Python 2.7.3
3
root@pgproxy1:~# apt-get install -y python-psycopg2 python-psycopg2-doc python-psycopg2-dbg
Reading package lists... Done
Building dependency tree
Reading state information... Done
...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
root@pgproxy1:~#
4
脚本例如以下:
# --encoding:utf-8--
import time
import threading
import psycopg2
import Queue
import datetime
该接口相关能够參考其官网:
http://initd.org/psycopg/
class PGWriterTest(threading.Thread):
""" 初始化 """
def __init__(self,connstr):
self.conn = psycopg2.connect(connstr)
self.cursor = self.conn.cursor()
self.dbnum = 4
self.connArray = []
self.cursorArray = []
for i in range(0,self.dbnum):
#DB port
dbidstr = '%02d' % (9900 + i)
if (i == 0 or i == 2 ):
dstDB = 'host=ip1 user=dbusername password=pwd dbname=dbname port='+ dbidstr
else:
dstDB = 'host=ip2 user=dbusername password=pwd dbname=dbname port='+ dbidstr
print 'connect ' + dstDB
dstConn = psycopg2.connect(dstDB)
self.connArray.append(dstConn)
dstCursor = dstConn.cursor()
self.cursorArray.append(dstCursor)
# 执行父类的构造函数
threading.Thread.__init__(self)
""" 数据写入数据库 """
def read(self,t_id):
sql = 'SELECT * from get_cont('+str(t_id)+')'
self.cursor.execute(sql)
datalist = []
for row in self.cursor.fetchall():
datalist.append(row)
return datalist
""" 数据写入数据库 """
def save(self,t_id,data):
sql = 'SELECT write_cont((%s,character(255) %s,%d,NOW()::timestamp))'
params = []
params.append(t_id)
params.append(data[1])
params.append(data[2])
params.append(data[3])
#print params
#取db_ins_id
db_ins_id = 0
db_ins_id = t_id % self.dbnum
try:
print str(datetime.datetime.now()) + " DB " + str(db_ins_id) + " " + str( t_id ) + " before insert"
insert_sql = 'SELECT write_cont((%s,character(255) %s,%d,NOW()::timestamp))'
self.cursorArray[db_ins_id].execute(insert_sql,params)
self.cursorArray[db_ins_id].execute("COMMIT")
print str(datetime.datetime.now()) + " DB " + str(db_ins_id) + " " + str( t_id ) + " inserted"
return True
except Exception,ex:
print("save error:%s" % str(ex))
print("save t_id:%s\t" % str(t_id))
print("error cont:%s" % str(params))
#self.log.write("error param:%s" % str(params))
#self.log.write("error t_id:%s" % data.get('t_id',''))
self.cursorArray[db_ins_id].execute("ROLLBACK")
return False
#測试读取
"""
try:
searchsql = 'select t_id from get_cont('+ str(t_id) + ')'
self.cursorArray[db_ins_id].execute(searchsql)
data = self.cursorArray[db_ins_id].fetchone()
if (data == None or int(data[0]) != t_id ):
print ' insert error for ' +str(db_ins_id) + searchsql
except Exception,searchex:
print str(searchex) + ' for ' + searchsql
"""
return True
if __name__ == "__main__":
pgTest = PGWriterTest('host=ip user=DBUser password=pwd dbname=DBNAme port=9999')
start_time = str(datetime.datetime.now())
for i in range(1,10):
t_id = 1000 + i;
print str(datetime.datetime.now()) + " getting "
rows = pgTest.read(t_id)
print str(datetime.datetime.now()) + " gotten "
#print rows[0]
pgTest.save(t_id,rows[0])
print start_time
print str(datetime.datetime.now())
-----------------
转载请著明出处:
blog.csdn.net/beiigang
ubuntu上跑python连接pg,报错 ImportError: No module named psycopg2的更多相关文章
- 【原创】大叔经验分享(11)python引入模块报错ImportError: No module named pandas numpy
python应用通常需要一些库,比如numpy.pandas等,安装也很简单,直接通过pip # pip install numpyRequirement already satisfied: num ...
- python 安装 reportlab 报错 “ImportError: No module named reportlab.lib”
reportlab是什么? 是一个处理PDF和画图的python开源库. 初次安装: pip install reportlab 重新安装: pip install --upgrade --force ...
- python setup.py install 报错ImportError: No module named setuptools
学习光荣之路python课程时,使用python setup.py install安装其他模块时,第一次安装某模块成功了.安装另一模块却报错ImportError: No module named s ...
- (转)coures包下载和安装 可解决报错ImportError: No module named '_curses'
原创文章,转载请注明出处. coures curses 库 ( ncurses )提供了控制字符屏幕的独立于终端的方法.curses 是大多数类似于 UNIX 的系统(包括Linux)的标准部分,而且 ...
- 【Python】Centos + gunicorn+flask 报错ImportError: No module named request
今天用Python去下载图片,用到了 urllib.request,这个是python3的方法.python2 使用的是urllib2 遇到了这么个问题后台报错,ImportError: No mod ...
- python pip 不能用报错: ImportError: No module named _internal
使用python pip安装包的时候报错: Traceback (most recent call last): File "/usr/local/bin/pip", line 7 ...
- coures包下载和安装 可解决报错ImportError: No module named '_curses'
http://blog.csdn.net/liyaoqing/article/details/54949253 coures curses 库 ( ncurses )提供了控制字符屏幕的独立于终端的方 ...
- 克隆kvm虚拟机报错ImportError: No module named 'requests.packages.urllib3'
2018-06-21 更新系统造成kvm克隆命令报错 virt-clone -o centos--update-clone -n centos--maven-test -f /var/lib/vmdk ...
- Django 运行报错 ImportError: No module named 'PIL'
importError: No module named pil WIN7 64位系统安装 Python PIL 首先通过easy_install安装 说找不到pil模块. 第二通过去官网找:http ...
随机推荐
- codeforces_B. Forgery
http://codeforces.com/contest/1059/problem/B 题意: For simplicity, the signature is represented as an ...
- reading from files
如果有图会很好理解,最近太忙,以后再加吧 #首先有一个需要读取的文件名列表 #然后将文件名列表通过函数string_input_producer放进文件名队列. #有时候因为数据量太大,需要把他们放进 ...
- 【git】搭建git服务器
在 Linux 下搭建 Git 服务器 目录 ① 安装 Git ② 服务器端创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码 ③ 服务器端创建 Git 仓库 ④ 客户端 clon ...
- SqlServer2012学习 - 基本数据类型认知
精确数字: 1.整数 int是Sql Server主要整数类型.tinyint,smallint,int 不会自动转成bigint. 大于 2,147,483,647 的整数常量将转换为 decima ...
- caffe blob理解
blob数据结构是caffe中基本的数据存储单元,它主要存储的数据是网络中的中间数据变量,比如各层的输入和输出:代价函数关于网络各层参数的梯度. blob中除了存储数据外,还有一些标记数据的参数,以下 ...
- idea cannot download sources解决办法
当我们点击Download Sources时: 有时候idea会出现cannot download sources的情况,如下图 解决办法如下:打开idea右下角的terminal 在里面输入 mvn ...
- 11.Spring通过工厂方法配置Bean
通过工厂方法配置Bean暴扣静态工厂方法和实例工厂方法. 1.静态工厂方法 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中,当客户端需要对象时,只需要简单的调用静态方法,而不去关心创建 ...
- IP_MULTICAST_LOOP
WINDOWS 中 该选项仅控制接收部分.即设置为0 则控制套接字无法接收自身消息.设置为1 则控制套接字使能接收自身消息. LINUX 中 该先项仅控制发送部分.即设置为0 则控制套 ...
- 集训第四周(高效算法设计)N题 (二分查找优化题)
原题:poj3061 题意:给你一个数s,再给出一个数组,要求你从中选出m个连续的数,m越小越好,且这m个数之和不小于s 这是一个二分查找优化题,那么区间是什么呢?当然是从1到数组长度了.比如数组长度 ...
- Lucene的分词_中文分词器介绍
Paoding:庖丁解牛分词器.已经没有更新了. MMSeg:搜狗的词库. MMSeg分词器的一些截图: 步骤: 1.导入包 2.创建的时候使用MMSegAnalyzer分词器