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的更多相关文章

  1. 【原创】大叔经验分享(11)python引入模块报错ImportError: No module named pandas numpy

    python应用通常需要一些库,比如numpy.pandas等,安装也很简单,直接通过pip # pip install numpyRequirement already satisfied: num ...

  2. python 安装 reportlab 报错 “ImportError: No module named reportlab.lib”

    reportlab是什么? 是一个处理PDF和画图的python开源库. 初次安装: pip install reportlab 重新安装: pip install --upgrade --force ...

  3. python setup.py install 报错ImportError: No module named setuptools

    学习光荣之路python课程时,使用python setup.py install安装其他模块时,第一次安装某模块成功了.安装另一模块却报错ImportError: No module named s ...

  4. (转)coures包下载和安装 可解决报错ImportError: No module named '_curses'

    原创文章,转载请注明出处. coures curses 库 ( ncurses )提供了控制字符屏幕的独立于终端的方法.curses 是大多数类似于 UNIX 的系统(包括Linux)的标准部分,而且 ...

  5. 【Python】Centos + gunicorn+flask 报错ImportError: No module named request

    今天用Python去下载图片,用到了 urllib.request,这个是python3的方法.python2 使用的是urllib2 遇到了这么个问题后台报错,ImportError: No mod ...

  6. python pip 不能用报错: ImportError: No module named _internal

    使用python pip安装包的时候报错: Traceback (most recent call last): File "/usr/local/bin/pip", line 7 ...

  7. coures包下载和安装 可解决报错ImportError: No module named '_curses'

    http://blog.csdn.net/liyaoqing/article/details/54949253 coures curses 库 ( ncurses )提供了控制字符屏幕的独立于终端的方 ...

  8. 克隆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 ...

  9. Django 运行报错 ImportError: No module named 'PIL'

    importError: No module named pil WIN7 64位系统安装 Python PIL 首先通过easy_install安装 说找不到pil模块. 第二通过去官网找:http ...

随机推荐

  1. ansible配置mysql主从复制

    配置主机1.下载安装所需安装包 [root@server1 ansible]# lsansible-2.7.8-1.el7.noarch.rpmansible-tower-setup-bundle-3 ...

  2. js 零散知识

    # 同一种类型的事件注册多个事件句柄,后面的不会覆盖前面的事件 # event.which == 13,13代表回车 # parsley.js验证框架 # JSON.stringify, avoid ...

  3. svn 版本库信息修改

    root@hpcstack hpcweb]# svn info 路径: . URL: http://svn.pyindex.com/hpcweb 版本库根: http://svn.pyindex.co ...

  4. vue hash模式和404页面的配置

    1.设置我们的路由配置文件(/src/router/index.js): { path:'*', component:Error } 这里的path:’*’就是找不到页面时的配置,component是 ...

  5. 【牛客小白月赛6】 J 洋灰三角 - 快速幂&逆元&数学

    题目地址:https://www.nowcoder.com/acm/contest/136/J 解法一: 推数学公式求前n项和: 当k=1时,即为等差数列,Sn = n+pn(n−1)/2 当k≠1时 ...

  6. 在CentOS6.4上安装GitLab

    1.Install and configure the necessary dependencies On CentOS 6 (and RedHat/Oracle/Scientific Linux 6 ...

  7. [Python3网络爬虫开发实战] 3.1-使用urllib

    在Python 2中,有urllib和urllib2两个库来实现请求的发送.而在Python 3中,已经不存在urllib2这个库了,统一为urllib,其官方文档链接为:https://docs.p ...

  8. Centos7 静态IP配置

    先将虚拟机设置为桥接模式: 虚拟机网络将VMnet8设置为NAT模式: 查看本机IP地址,ipconfig,记住ipv4地址和默认网关地址,等会配置的时候要用 启动Centos,进入终端模式,设置IP ...

  9. CSU 1259 bfs找最短路

    题目大意: 不想介绍,题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1259 bfs求最短路. 这里因为2-9,到达同样的点不计步数,那我 ...

  10. [luoguP1494] 岳麓山上打水 && [luoguP2744] [USACO5.3]量取牛奶Milk Measuring

    传送门 传送门 dfs选取集合,dp背包判断 虽然我觉的会TLE.. 但是的确是AC了 #include <cstdio> #include <cstring> #includ ...