sql >> Databasteknik >  >> RDS >> Mysql

Enklare installation för att skriva till MySQL på OSX med Python

Tyvärr finns det egentligen ingen trivial lösning för tillfället. Om du behöver använda MySQL med Python är den enklaste och mest pålitliga lösningen på OS X att installera allt - Python, MySQLdb, alla andra tredjeparts Python-paket som behövs, MySQL-klientbibliotek och, om nödvändigt, MySQL-serverbibliotek och -verktyg - med ett pakethanteringssystem, som MacPorts . Att försöka installera de olika komponenterna från olika källor stöter ofta på problem med inkompatibilitetsbyggda körbara filer och bibliotek:32-bitars vs 64-bitars, olika ABI:er (10.3 vs 10.6) etc.

För ett system med Xcode och MacPorts bassystem installerat kan du bygga och installera allt med ett kommando:

sudo port install py27-mysql

Om du också behöver MySQL-servern:

sudo port install py27-mysql mysql5-server

Alla MacPorts-installerade körbara filer kommer att installeras som standard i /opt/local , så du behöver bara köra saker därifrån:

/opt/local/bin/python2.7

För att göra det enklare för dina användare bör du kunna använda MacPorts för att bygga uppsättningen av nödvändiga portar som binära arkiv och ställa in ett skript för att installera MacPorts bassystem och sedan dina förbyggda paket. Det finns lite information om detta i MacPorts-guiden här . Mycket av det är dock inaktuellt för MacPorts 2.0.x. Tills guiden uppdateras finns det information som börjar här . Det säkraste tillvägagångssättet skulle vara att bygga en annan uppsättning paket för varje OS X-version som stöds. Det kan vara möjligt att bygga en uppåtkompatibel uppsättning på det äldsta systemet som behövs:säg bygga paket på 10.5 som också skulle fungera på 10.6 och 10.7 system. För att förhindra störningar med kundens MacPorts-installationer kan du också bygga MacPorts-bassystemet från källkod och ändra installationsroten till något annat än /opt/local .

En mer idiomatisk metod för OS X skulle vara att använda py2app för att skapa ett applikationspaket som inkluderar Python- och MySQL-klientbiblioteken. Jag vet inte om någon har lyckats med det.

Ett annat förslag:om du egentligen inte behöver en fjärrserver, överväg att använda SQLite istället. Stöd för SQLite ingår i Python Standard Library.




  1. Vad är ett databasschema?

  2. Hur man använder LIKE i SQL

  3. mysqldump med --where-satsen fungerar inte

  4. Oracle - literal matchar inte formatsträngsfel