pythonmysqlubuntu
在用Django時,資料庫如果選擇MySQL,那麼需要安裝MySQL-Python,以下是簡明安裝教程:
1. 到下載安裝包,截至筆者發稿,MySQL-python的版本為:MySQL-python-1.2.4b4.tar.gz。
2. 解壓,筆者解壓到了~/temp目錄下:
[plain] view plain
$ tar -zxvf MySQL-python-1.2.4b4.tar.gz -C ~/temp/
3. 在終端裡面執行以下命令:
[plain] view plain
$ mysql_config
如果提示未找到命令,則安裝終端提示你的包,如下:
則安裝:
[plain] view plain
$ sudo apt-get install libmysqlclient-dev
4. 我們打開MySQL-python-1.2.4b4目錄(步驟2中解壓得到的目錄)中的site.cfg文件,看到有這樣的說明:
意思就是說,如果mysql_config腳本不在PATH中,我們就解注釋下面的代碼,並修改這行代碼後面的路徑,以告知mysql_config腳本的位置;如果mysql_config這個腳本在PATH中,就不要改了,否則會出現一些匪夷所思的現象。遵旨!
5. 為了知曉我們到底用不用改site.cfg,再次嘗試在終端執行:
[plain] view plain
$ mysql_config
如果出現以下結果:
則說明mysql_config腳本在PATH中(或者說在MySQL-python過程中我它能找到mysql_config腳本),那麼我們就不用修改site.cfg;
如果未出現,則就按著步驟4所述修改site.cfg,可以在終端執行如下命令,來尋找mysql_config這個腳本的路徑:
[plain] view plain
$ find / -name mysql_config
得到mysql_config的路徑(應該很快,find命令據推測應該會先在PATH變數中的路徑尋找,出來第一條結果後適時終止執行即可),修改site.cfg。
6. 若MySQL是通過apt-get安裝的,那麼我們還要安裝python-dev包,來提供安裝過程中必須的Python.h這個頭文件:
[plain] view plain
$ sudo apt-get install python-dev
7. 准備工作終於做完了!現在趕緊去解壓得到的文件夾MySQL-python-1.2.4b4下,運行:
[plain] view plain
$ sudo python setup.py build
$ sudo python setup.py install
8. 測試一下,在python命令行中執行:
[plain] view plain
import MySQLdb
如果沒出現錯誤,說明我們成功安裝了MySQL-python。
附:Django中驗證某一項目成功連接MySQL的方法:
樣例settings.DATABASES:
[python] view plain
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'db_name', # Or path to database file if using sqlite3.
'USER': 'your_MySQL_uname', # Not used with sqlite3.
'PASSWORD': 'your_pwd', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
在項目目錄通過以下命令啟動Python Shell:
[plain] view plain
$ python manage.py shell
註:以上命令是以正確配置啟動Shell的一種方法。
接著在Shell中輸入下列命令測試MySQL連接:
[python] view plain
>>>from django.db import connection
>>>c = connection.cursor()
如果沒有顯示什麼錯誤信息,那麼你的資料庫配置是正確的。
Ⅱ mysqldb 裝不上啊,求助 MySQL-python
Python.h:沒有那個文件或目錄, 沒有python開發包
mysql.h:沒有那個文件或目錄, 沒有mysql的開發包。
如果是centos, redhat,可用yum命令安裝,sudo yum install python-devel mysql-devel, 可用yum search python*查看有哪些包可以安裝,mysql數據。
如果是ubuntu,可用apt-get命令安裝,sudo apg-get install python-devel mysql-devel,可用apt-cache search python*有哪些python相關的包可以安裝。
另外,不建議用root用戶在linux系統中進行操作,比較危險。
Ⅲ Python 操作 MySQL 的5種方式
1、MySQLdb
# 前置條件
sudo apt-get install python-dev libmysqlclient-dev # Ubuntu
sudo yum install python-devel mysql-devel # Red Hat / CentOS
# 安裝
pip install MySQL-python
Windows 直接通過下載 exe 文件安裝
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(
host = "localhost", # 主機名
user = "root", # 用戶名
passwd = "pythontab.com", # 密碼
db = "testdb") # 資料庫名稱
# 查詢前,必須先獲取游標
cur = db.cursor()
# 執行的都是原生SQL語句
cur.execute("SELECT * FROM mytable")
for row in cur.fetchall():
print(row[0])
db.close()
2、mysqlclient
# Windows安裝
pip install some-package.whl
# linux 前置條件
sudo apt-get install python3-dev # debian / Ubuntu
sudo yum install python3-devel # Red Hat / CentOS
brew install mysql-connector-c # macOS (Homebrew)
pip install mysqlclient
3、PyMySQL
pip install PyMySQL
# 為了兼容mysqldb,只需要加入
pymysql.install_as_MySQLdb()
import pymysql
conn = pymysql.connect(host = 飗.0.0.1', user = 'root', passwd = "pythontab.com", db = 'testdb')
cur = conn.cursor()
cur.execute("SELECT Host,User FROM user")
for r in cur:
print(r)
cur.close()
conn.close()
4、peewee
pip install peewee
import peewee
from peewee import *
db = MySQLDatabase('testdb', user = 'root', passwd = 'pythontab.com')
class Book(peewee.Model):
author = peewee.CharField()
title = peewee.TextField()
class Meta:
database = db
Book.create_table()
book = Book(author = "pythontab", title = 'pythontab is good website')
book.save()
for book in Book.filter(author = "pythontab"):
print(book.title)
5、SQLAlchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_declarative import Address, Base, Person
class Address(Base):
__tablename__ = 'address'
id = Column(Integer, primary_key = True)
street_name = Column(String(250))
engine = create_engine('sqlite:///sqlalchemy_example.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind = engine)
session = DBSession()
# Insert a Person in the person table
new_person = Person(name = 'new person')
session.add(new_person)
session.commit()
Ⅳ ubuntu下配置django+apache+mysql+mod_python+Python
檢查apache python相關配置,再重啟一下試試。
Ⅳ python怎麼安裝mysqldb
在配置Django時,選擇的是mysql資料庫,要安裝MySQLdb模塊,不過安裝過程中,遇到了很多errors,記錄一下。
系統:ubuntu 11.10
mysql:直接apt-get安裝的,version:5.1.62
到官方下載MySQL for Python
然後解壓,打開README:
裡面有安裝過程:
tarxfzMySQL?python?1.2.1.tar.gz cd MySQL-python-1.2.1# edit site.cfg if necessary# edit site.cfg if necessary python setup.py build$ sudo python setup.py install # or su first不過在python setup.py build時報錯:
ImportError: No mole named setuptools
ubuntu下安裝:
sudo apt-get install python-setuptools
python-setuptools : Python Distutils Enhancements (setuptools compatibility)然後再次python setup.py build,又報錯:
EnvironmentError: mysql_config not found
因為mysql_config是屬於MySQL開發用的文件,而使用apt-get安裝的MySQL是沒有這個文件的,於是在包安裝器裡面尋找sudo apt-get install libmysqld-dev
libmysqld-dev : MySQL embedded database development files再次運行python setup.py build,報錯:
building 『_mysql』 extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,』final』,0) -D__version__=1.2.3 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-i686-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUXIn file included from _mysql.c:29:0:
pymemcompat.h:10:20: fatal error: Python.h: No such file or directory解決方案,
sudo apt-get install python-dev
python-dev : header files and a static library for Python (default)然後就按照README里的:
pythonsetup.pybuild sudo python setup.py install測試:
>>>import MySQLdb
沒有報錯即可。