簡體   English   中英

Python 和 MySQL:有 MySQLdb 的替代品嗎?

[英]Python and MySQL: is there an alternative to MySQLdb?

是否有一個純粹用 Python 編寫的模塊,它允許腳本與 MySQL 數據庫通信? 我已經嘗試過 MySQLdb 沒有成功。 它要求太多:GCC、zlib 和 openssl。 我無權使用這些工具; 即使我這樣做了,我也不想浪費時間讓他們一起工作。 我正在尋找可以讓我的工作更輕松的工具。

有人能指出我用 Python 編寫的 MySQL Python 模塊的方向嗎? 如果沒有,我將不勝感激編寫我自己的代碼以與 MySQL 通信的提示。

謝謝,

托尼


謝謝大家的回答。 由於我正在使用一個小型數據庫(幾百條記錄,主要是姓名和地址),我決定使用 SQLite。 我剛剛發現它。 它似乎非常適合我的目的; 它安裝簡單(大約需要兩分鍾),並且可以與 Python 配合使用。 我堅持使用 Python 2.4,所以我不能使用 sqlite3 模塊,但我可以使用 Python 的“subprocess.Popen”function 和命令行參數與數據庫通信。

最近還有oursql ( docs ),它比 MySQLdb 和其他現有驅動程序具有各種優勢——列在文檔的頂部。

你看過這些嗎?

http://wiki.python.org/moin/MySQL

Oracle 實現了一個純 python mysql 連接器,恰當地命名為mysql-connector-python 它可以通過 pip 安裝並接收大量更新。

請注意,它是 GPL 許可的,這對您的項目可能是也可能不是問題。 如果你不能忍受,你也可以選擇PyMySQL ,它是少數幾個運行良好的連接器之一,在 MIT 下分發。

我有一個問題,我想編寫適用於 Python 2 和 Python 3 的代碼。我發現pymysql非常適合。 我無需調整代碼即可從 MySQLdb 切換到 pymysql

安裝

$ pip install PyMySQL

如果您沒有管理員權限:

$ pip install -u PyMySQL

用法

用法與 MySQLdb 相同:

SELECT

import pymysql
import pymysql.cursors
connection = pymysql.connect(host=mysql['host'],
                             user=mysql['user'],
                             passwd=mysql['passwd'],
                             db=mysql['db'],
                             cursorclass=pymysql.cursors.DictCursor)
cursor = connection.cursor()
sql = ("SELECT `id`, `formula_in_latex` FROM `wm_formula` "
       "WHERE `is_important` = 1 "
       "AND id != 1 "  # exclude trash class
       "ORDER BY `id` ASC")
cursor.execute(sql)
formulas = cursor.fetchall()

插入

import pymysql
connection = pymysql.connect(host=mysql['host'],
                             user=mysql['user'],
                             passwd=mysql['passwd'],
                             db=mysql['db'])
cursor = connection.cursor()
cursor.execute("INSERT INTO `toys` (`id`, `arrival`, `duration`) "
               "VALUES ('1', '2014-12-01', '123');")
connection.commit()

如前面的答案所述,MySQL 連接器/Python 在 Python 中完全實現了 MySQL 服務器/客戶端。 無需編譯,只需安裝。

以下是鏈接:
* https://launchpad.net/myconnpy
* 代碼: https://code.launchpad.net/myconnpy
* 下載: https://launchpad.net/myconnpy/+download (開發截圖)

它還沒有完成,但它應該足以讓你繼續前進。 (僅供參考,我是維護者)

您可以為大多數操作系統找到 MySQLdb 及其依賴項的預構建二進制包。

http://sourceforge.net/project/showfiles.php?group_id=22307&package_id=15775

你在什么平台上運行?

毫無疑問 MySQLdb 是最好的解決方案,但如果你不能使用它......

如果你有libmysqlclient .[ so | dll ],您可以使用ctypes模塊直接訪問它。

據我所知,沒有直接的選擇。 我唯一能想到的就是通過pyodbc使用 ODBC 。 MySQL 站點有一個 ODBC 連接器,您可以下載 但我自己從未使用過這種方法,所以我不能說它的效果如何。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM