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 ...
随机推荐
- springboot Tomcat connector configured to listen on port 8081 failed to start.
启动报 Tomcat connector configured to listen on port 8081 failed to start. The port may already be in ...
- idea拉出Output窗口和还原窗口
拉出:按住标题可以拖出 效果: 还原:点击restore layout
- python beautifulsoup获取特定html源码
beautifulsoup 获取特定html源码(无需登录页面) import refrom bs4 import BeautifulSoupimport urllib2 url = 'http:// ...
- vue全选与反选以及通过使用如何filter删除数据
在vue学习经常遇到的一些基本问题,下面是购物车里面的部分功能,分享给初学者,直接上源码: <!DOCTYPE html><html> <head> <met ...
- 08私有化、MRO顺序
一. 私有化 1)xx: 公有变量 2)_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 3)__xx:双前置下划线,避免与子类中 ...
- ajax中文乱码解决(java)
方法1: 页面端发出的数据做一次encodeURI,服务器端使用new String(old.getBytes("iso8859-1"), "utf-8") 方 ...
- python中正则表达式与模式匹配
一.前言 在之前找工作过程中,面试时经常被问到会不会python,懂不懂正则表达式.心里想:软件的东西和芯片设计有什么关系?咱也不知道因为啥用这个,咱也不敢问啊!在网上搜索到了一篇关于脚本在ASIC领 ...
- 13-看图理解数据结构与算法系列(Trie树)
Trie树 Trie树,是一种搜索树,也称字典树或单词查找树,此外也称前缀树,因为某节点的后代存在共同的前缀.它的key都为字符串,能做到高效查询和插入,时间复杂度为O(k),k为字符串长度,缺点是如 ...
- 在 Sublime Text 直接运行 Javascript 调试控制台
转载自:http://www.jianshu.com/p/43b0726792f7 sublime text javascript Sublime Text是深受喜欢的多语言编辑器,很多开发人员都选择 ...
- Python之条件 循环和其他语句 2014-4-6
#条件 循环和其他语句 23:30pm-1:431.print和import的更多信息 使用逗号将多个表达式输出 >>> print 'age:',42 age: 42 >&g ...