當前位置:首頁 » 編程語言 » pythongdbm

pythongdbm

發布時間: 2022-12-31 08:51:44

『壹』 windows環境下,使用python,無法查看部分命令的幫助文檔,無法import部分包

重裝python應該可以解決這個問題

重新安裝python
1、 在上次進行安裝python的時候,很多東西不能用,例如後退鍵,刪除鍵,都是不能在命令行中使用,主要原因是在編譯python的時候,相關的安裝包沒有進行安裝,從而導致出現亂碼,在編譯最新版本的python之後,可以看到如下的信息:

Python build finished, but the necessary bits to build these moles were not found:
_bsddb _curses _curses_panel
_sqlite3 _ssl _tkinter
bsddb185 bz2 dbm
dl gdbm imageop
readline sunaudiodev zlib
To find the necessary bits, look in setup.py in detect_moles() for the mole's name

表示在進行編譯python的時候,這些包不能被安裝,因為在系統中,缺少相關的依賴項,從而需要在系統中安裝相應的包,然後進行重新編譯安裝python。

2、 包的信息如下所示:--模塊及依賴說明為網路參考,未加考證

模塊 依賴 說明
_bsddb bsddb Interface to Berkeley DB library。Berkeley資料庫的介面
_curses ncurses Terminal handling for character-cell displays。
_curses_panel ncurses A panel stack extension for curses。
_sqlite3 sqlite DB-API 2.0 interface for SQLite databases。SqlLite,CentOS可以安裝sqlite-devel
_ssl openssl-devel.i686 TLS/SSL wrapper for socket objects。
_tkinter N/A a thin object-oriented layer on top of Tcl/Tk。如果不使用桌面程序可以忽略TKinter
bsddb185 old bsddb mole 老的bsddb模塊,可忽略。
bz2 bzip2-devel.i686 Compression compatible with bzip2。bzip2-devel
dbm bsddb Simple 「database」 interface。
dl N/A Call C functions in shared objects.Python2.6開始,已經棄用。
gdbm gdbm-devel.i686 GNU』s reinterpretation of dbm
imageop N/A Manipulate raw image data。已經棄用。
readline readline-devel GNU readline interface
sunaudiodev N/A Access to Sun audio hardware。這個是針對Sun平台的,CentOS下可以忽略
zlib Zlib Compression compatible with gzip

從而需要進行安裝的依賴包未readline-devel,sqlite-devel,bzip2-devel,openssl-devel,libdbi-devel,
ncurses-devel,zlib-devel,gdbm-devel,注意在進行安裝的時候,也要安裝不加devel的包文件

在安裝了這些包之後,必須重新進行編譯python,然後重新進行安裝。

3、 在重新安裝完成之後,即可進行相關測試,進入python的命令行環境,然後進行測試後退鍵,刪除鍵,看是否存在亂碼,亂碼這個主要是因為readlinedevel未進行安裝。

『貳』 請教,ubuntu10.04下,如何卸載python2.7.8

代碼:
$ ./configure --prefix=/usr/include
$ make
$ sudo checkinstall

然後,python2.7文件夾出現在/usr/include/bin、/usr/include/liclude和/usr/include/lib中,

輸入

代碼:
$ python --version
python 2.6.5

但是,卻出現如下提示:
[text]
$ sudo apt-get autoremove
正在讀取軟體包列表... 完成
正在分析軟體包的依賴關系樹
正在讀取狀態信息... 完成
您也許需要運行「apt-get -f install」來修正上面的錯誤。
下列軟體包有未滿足的依賴關系:
command-not-found: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
computer-janitor: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
computer-janitor-gtk: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
gdebi: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
gdebi-core: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
jockey-common: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
lsb-release: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
nvidia-common: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-appindicator: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-apport: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-apt: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-aptdaemon: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-aptdaemon-gtk: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-brlapi: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-cairo: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-crypto: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-cups: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-dbus: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-egenix-mxdatetime: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-egenix-mxtools: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-farsight: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gconf: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gdbm: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-glade2: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gmenu: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gnome2: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gnomeapplet: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gnomecanvas: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gnomekeyring: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gobject: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gst0.10: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gtk2: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gtksourceview2: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-gtkspell: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-imaging: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-indicate: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-launchpad-integration: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-libxml2: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-newt: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-notify: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-openssl: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-pam: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-pkg-resources: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-problem-report: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-pycurl: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-pygoocanvas: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-pyorbit: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-rdflib: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-setuptools: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-simplejson: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-smbc: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-software-properties: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-twisted-bin: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-twisted-core: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-virtkey: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-vte: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-webkit: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-wnck: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-xapian: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
python-zope.interface: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
screen-resolution-extra: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
software-properties-gtk: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
ufw: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
update-manager: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝
update-manager-core: 依賴: python (< 2.7) 但是 2.7.8-1 已經安裝

『叄』 如何持久化python對象

1. 使用(dbhash/bsddb, dbm, gdbm, mbdbm 等)以及它們的"管理器"( anydbm )。只提供了 Python 字元串的永久性儲存. 提供一個類似字典和文件的對象,可以完成字元串的永久性存儲
2. 使用marshal和pickle來序列化python對象,並具備存儲到介質上的功能。兩者的區別在於:marshal只能處理簡單的Python對象,包括數字、序列、映射、以及代碼對象;而pickle還可以處理遞歸對象,被不同地方多次引用的對象,以及用戶定義的類和實例。其中,pickle有一個C語言實現的版本——cPickle,具有更高的效率,建議使用cPickle。
3. 雖然pickle提供非常強大的功能了,已經可以滿足我們大部分的需求了,但是,人類的需求是無止境的,光序列化不行啊,只用 pickle 不能解決命名和查找 pickle 文件這樣的問題,要是可以對序列化的對象提供管理功能,支持並發訪問就好了。因此,人們發明了shelve模塊,它是前兩者的綜合。shelve模塊使用anydbm模塊尋找合適的DBM模塊,然後使用cPickle來完成對象存儲轉換過程。shelve模塊允許對資料庫文件進行並發的讀訪問,但不允許共享讀/寫訪問。
4. 還有一種方案,是在IBM的網站上看到的。那就是ZODB了。ZODB比簡單的 pickle 文件更健壯以及更具有可伸縮性。ZODB是一個針對Python的Z對象資料庫,是一個健壯的、多用戶的和面向對象的資料庫系統,它能夠存儲和管理任意復雜的 Python 對象,並支持事務操作和並發控制。其實,ZODB也依靠Python 的本機序列化能力,而且要有效地使用 ZODB,必須充分了解 pickle。
5. 最後一隻知道的解決持久性問題的方法是 Prevayler,PyPerSyst 將整個對象系統保存在內存中,並通過不時地將系統快照 pickle 到磁碟以及維護一個命令日誌(通過此日誌可以重新應用最新的快照)來提供災難恢復。所以,盡管使用 PyPerSyst 的應用程序受到可用內存的限制,但好處是本機對象系統可以完全裝入到內存中,因而速度極快,而且實現起來要比如 ZODB 這樣的資料庫簡單,ZODB 允許對象的數目比同時在能內存中所保持的對象要多。

『肆』 python fetchone 取出的數據是什麼類型

舉例,首先看了pymysql裡面的cursor類,關於execute、fetchone和fetchall定義如下:
#調用self._query方法進行查詢
def execute(self, query, args=None):
"""Execute a query
:param str query: Query to execute.
:param args: parameters used with query. (optional)
:type args: tuple, list or dict
:return: Number of affected rows
:rtype: int
If args is a list or tuple, %s can be used as a placeholder in the query.
If args is a dict, %(name)s can be used as a placeholder in the query.
"""
while self.nextset():
pass
query = self.mogrify(query, args)
result = self._query(query)
self._executed = query
return result
#調用_do_get_result獲取查詢結果
def _query(self, q):
conn = self._get_db()
self._last_executed = q
self._clear_result()
conn.query(q)
self._do_get_result()
return self.rowcount
#這里獲取結果
def _do_get_result(self):
conn = self._get_db()
self._result = result = conn._result
self.rowcount = result.affected_rows
self.description = result.description
self.lastrowid = result.insert_id
self._rows = result.rows
self._warnings_handled = False

if not self._defer_warnings:
self._show_warnings()
其實看到這里代碼邏輯已經很清楚了,在調用cursor.execute執行SQL的時候,就將MySQL查詢的結果放到result這個變數里了,也就是說結果集放到了客戶端的內存變數里,那麼獲取數據的方式也就是從這個內存變數里去獲取數據,只是獲取的行為有所不同而已了。
def fetchone(self):
"""Fetch the next row"""
self._check_executed()
if self._rows is None or self.rownumber >= len(self._rows):
return None
result = self._rows[self.rownumber]
self.rownumber += 1
return result

def fetchmany(self, size=None):
"""Fetch several rows"""
self._check_executed()
if self._rows is None:
return ()
end = self.rownumber + (size or self.arraysize)
result = self._rows[self.rownumber:end]
self.rownumber = min(end, len(self._rows))
return result
def fetchall(self):
"""Fetch all the rows"""
self._check_executed()
if self._rows is None:
return ()
if self.rownumber:
result = self._rows[self.rownumber:]
else:
result = self._rows
self.rownumber = len(self._rows)
return result
口說無憑,我們直接通過Wireshark抓包來證明一下,首先我在本地執行腳本如下,然後我監聽本地的網卡流量
import pymysql
conn = pymysql.connect(host='xxx', port=3306,
user='xucl', password='xuclxucl', database='xucl')
cursor = conn.cursor()
cursor.execute("select * from t")
注意,我這里並沒有執行fetch操作,如果監聽到的包裡麵包含了結果,那麼就證明我們前面的分析是正確的,話不多說開始實驗,Wireshark抓包如下:
果然跟我們之前的預測是一致的,即使沒有進行fetch操作,MySQL也將結果集發送到客戶端了。另外關於結果集發送,可以參考我另外一篇文章:《由一個抓瞎的SQL引申出去》

結論:
客戶端執行SQL的時候,MySQL一次性將結果集發送給了客戶端
客戶端接收到結果集以後存儲本地內存變數中
fetch結果只是從這個本地變數中獲取,fetchone/fetchmany/fetchall只是獲取行為的不通,因此對於MySQL來說並沒有什麼不通的。

『伍』 python的數據類型

>>>>請問如何來暫時保存這些數據?如何使用這些數據?
不太確定理解了你的問題:
1 你是根據資料庫來進行語句分割,評價分析的嗎。
如果是的話,那就把分析結果存到字典里就可以了。(也就是你說的保存)
使用呢,就是對這個字典進行判斷處理。
2 如果不是的話,你是想收集語料庫放到字典里,然後再利用這個字典對象去判斷?
保存大詞典對象的話可以用gdbm來讀寫。

熱點內容
oppoa37怎麼給應用加密 發布:2025-07-01 12:20:53 瀏覽:641
java毫秒數 發布:2025-07-01 12:19:14 瀏覽:518
評委打分c語言 發布:2025-07-01 12:10:05 瀏覽:143
c語言中e的次方 發布:2025-07-01 12:02:23 瀏覽:177
php訪問量統計代碼 發布:2025-07-01 11:57:56 瀏覽:211
粵核酸的賬號密碼是什麼 發布:2025-07-01 11:52:41 瀏覽:209
我的世界國際版java版伺服器在哪 發布:2025-07-01 11:45:57 瀏覽:880
存儲米酒 發布:2025-07-01 11:45:13 瀏覽:986
使用openssl加密 發布:2025-07-01 11:43:54 瀏覽:546
客戶端腳本語言和伺服器腳本語言有什麼區別 發布:2025-07-01 11:42:27 瀏覽:52