#!/usr/bin/python2.4
# myzodb.py
import sys
import os
from zodb import filestorage
from zodb import db
import transaction
class myzodb(object):
def __init__(self, path):
self.storage = filestorage.filestorage(path)
self.db = db(self.storage)
self.connection = self.db.open()
self.dbroot = self.connection.root()
def close(self):
self.connection.close()
self.db.close()
self.storage.close()
from myzodb import myzodb
if __name__ == '__main__':
#fetch_******.py
db = myzodb('/opt/data.fs')
dbroot = db.dbroot
for key in dbroot.keys():
print key + ':',dbroot[key]
db.close()
執行的使用出錯了:
[root@localhost python]# ./myzodb.py
traceback (most recent call last):
file "./myzodb.py", line 5, in ?
from zodb import filestorage
file "/opt/plone-2.5/lib/python/zodb/__init__.py", line 20, in ?
from persistent import timestamp
file "/opt/plone-2.5/lib/python/persistent/__init__.py", line 19, in ?
from cpersistence import persistent, ghost, uptodate, changed, sticky
importerror: /opt/plone-2.5/lib/python/persistent/cpersistence.so: undefined symbol: pyunicodeucs2_asencodedstring
上網查詢發現是由於我本機的python是4位元組的unicode,而plone中定義的函式介面是針對2位元組的unicode的,所以我就重新編譯了本機的python-2.4.3
./configure --enable-unicode=ucs2 --prefix=$py_home --with-readline --with-zlib
make
make install
為了確定我使用的python是2位元組的,我這麼測試的:
[root@localhost bin]# /opt/plone-2.5/python-2.4.3/bin/python
python 2.4.3 (#1, aug 4 2011, 14:59:31)
[gcc 4.1.2 20080704 (red hat 4.1.2-50)] on linux2
>>> import sys
>>> print sys.maxunicode
65535
返回值=1114111 ucs-4
返回值=65535 ucs-2
編譯之後的python的確是ucs-2的了,但是將myzodb.py程式的地一句話修改為:
#!/opt/plone-2.5/python-2.4.3/bin/python
之後再執行./myzodb.py依然出現同樣的錯誤。崩潰了
怎麼辦?
python 訪問資料庫
commit 提交 rollback 回滾 cursor用來執行命令的方法 callproc self,procname,args 用來執行儲存過程,接收的引數為儲存過程名和引數列表,返回值為受影響的行數 execute self,query,args 執行單條sql語句,接收的引數為sql語句本身...
訪問資料庫 訪問資料庫
程式執行的時候,資料都是在記憶體中的。當程式終止的時候,通常都需要將資料儲存到磁碟上,無論是儲存到本地磁碟,還是通過網路儲存到伺服器上,最終都會將資料寫入磁碟檔案。而如何定義資料的儲存格式就是乙個大問題。如果我們自己來定義儲存格式,比如儲存乙個班級所有學生的成績單 名字成績 michael99 bo...
Python訪問SQL Server資料庫
1 有兩個python的sqlserver驅動,乙個是pyodbc 另外乙個是pymssql,選擇期中的乙個即可以,然後配置你的開發環境。pip install pymssql即可安裝pymssql庫。備註 安裝的過程中可能會出現找不到sqlfront.h檔案的錯誤。如果是linux平台,直接安裝f...