OSX 10.6'da MySQLdb'yi Python ve Django ile nasıl kullanabilirim?


259

Bu OSX 10.6 kullanıcıları için çok tartışılan bir konudur, ancak işe yarayan bir çözüm bulamadım. İşte kurulumum:

Python 2.6.1 64bit Django 1.2.1 MySQL 5.1.47 osx10.6 64bit

--No-site-paketleri ile bir sanalenvwrapper oluşturdum, sonra Django'yu kurdum. Virtualenv'i etkinleştirdiğimde ve python manage.py syncdb çalıştırdığımda, bu hatayı alıyorum:

Traceback (most recent call last):
File "manage.py", line 11, in <module>
  execute_manager(settings)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager
  utility.execute()
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 257, in fetch_command
  klass = load_command_class(app_name, subcommand)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/__init__.py", line 67, in load_command_class
  module = import_module('%s.management.commands.%s' % (app_name, name))
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/commands/syncdb.py", line 7, in <module>
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/core/management/sql.py", line 5, in <module>
from django.contrib.contenttypes import generic
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/contrib/contenttypes/generic.py", line 6, in <module>
  from django.db import connection
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/db/__init__.py", line 75, in <module>
  connection = connections[DEFAULT_DB_ALIAS]
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/db/utils.py", line 91, in __getitem__
  backend = load_backend(db['ENGINE'])
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/db/utils.py", line 32, in load_backend
  return import_module('.base', backend_name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/django/db/backends/mysql/base.py", line 14, in <module>
  raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Ayrıca MySQL for Python bağdaştırıcısını yükledim , ancak boşuna (belki de yanlış yükledim?).

Daha önce bununla ilgilenen var mı?


5
Bu sorun, MySQL for Python bağdaştırıcısının eksik / yanlış yüklenmesinin bir sonucudur. Özellikle, / usr / local / mysql / bin / mysql_config - bu makalede daha ayrıntılı olarak ele alınan mysql_config dosyasının yolunu düzenlemek zorunda kaldım: dakrauth.com/blog/entry/…
Joe

sadece bunu yap ---------- apt-get install python-mysqldb
shadow0359

pip install mysqlbenim için çalıştı!
Ivan Carrasco Quiroz

Yanıtlar:


330

Aynı hatayı aldım ve pip install MySQL-pythonbenim için çözdüm.

Alternatif yüklemeler:

  • Pip'iniz yoksa easy_install MySQL-pythonçalışmalısınız.
  • Python'unuz bir paketleme sistemi tarafından yönetiliyorsa, bu sistemi kullanmanız gerekebilir (örn. sudo apt-get install ...)

Soli, aşağıdaki hatayı alırsanız şunları not eder:

EnvironmentError: mysql_config not found

... başka bir sistem bağımlılığı sorununuz var. Bunu çözmek sistemden sisteme değişiklik gösterecektir, ancak Debian kaynaklı sistemler için:

sudo apt-get install python-mysqldb


2
Evet, mysql-python aramak ve yüklemek için Synaptic Paket Yöneticisi'ni kullandım ve harika çalıştı. Teşekkürler.
Tomasz Iniewicz

6
Fedora 17: sudo yum install MySQL-python:)
g19fanatic

20
$ mysql_config'Mysql_config' programı şu anda yüklü değil. T yping ile yükleyebilirsiniz:sudo apt-get install libmysqlclient-dev
anders

1
bu cevabı django resmi belgesine
eklemelidir

1
Ben bu hatayla benzersiz kişi olduğumu düşünüyorum 'Komut python setup.py egg_info hata kodu 1 ile başarısız' çalıştırdıktan sonra 'pip install MySQL-python'
RicardoGonzales

62

Ubuntu çalıştırarak şunları yapmam gerekiyordu:

sudo apt-get install python-mysqldb

8
Ubuntu değil OS X çalıştırıyor
Facundo Casco

8
Ayrıca bu virtualenv koymak olmaz
Twirrim

58

Diğer cevaplara ek olarak, aşağıdaki kurulum mysql-python kurulumunu bitirmeme yardımcı oldu:

virtualenv, mysql-python, pip: kimse nasıl biliyor?

Ubuntu'da ...

apt-get install libmysqlclient-dev
apt-get install python-dev
pip install mysql-python

Doğru izinlere sahip değilseniz, komutların başına 'sudo' eklemeyi unutmayın.


1
anahtar apt-get install python-dev. 2 yıl sonra neden python'un dev bir sürümünü yüklediğimi bilmiyorum, ama bugün python 2.7.3'ü kullanarak çalışıyor. Sadece 3 saat israf ediliyor.
user798719

23

Aşağıdaki komutları deneyin. Benim için çalışıyorlar:

brew install mysql-connector-c 
pip install MySQL-python

Bu yöntem sorunumu çözdü. Daha önce diğer tüm öneriler banaCommand "python setup.py egg_info" failed with error code 1 in /private/var/folders/r8/c_tscq492sn641w5vtvqcvkw0000gp/T/pip-build-JYY1du/MySQL-python
LearnAWK

2
Teşekkürler Büyük ölçüde, yukarıda belirtilen tüm deneyin. Hiçbiri OSX 10.11 üzerinde çalışmamıştı
Paullo

1
@ ÖğreninAWK çalışmıyor. Hala "python setup.py egg_info" komutunu / private / var / folders / 3m / 97mbsh5x2bnghhk55130bh_h0000gn / T / pip-build-FFU1vL / MySQL-python /
Stony

19

mysql_configyolda olmalı. Mac'te

export PATH=$PATH:/usr/local/mysql/bin/
pip install MySQL-python

4
Bunu denedim ve hala aynı hatayı alıyorum: 'ImproperlyConfigured yükseltmek ("MySQLdb modülünü yüklerken hata:% s"% e) django.core.exceptions.ImproperlyConfigured: MySQLdb modülünü yüklerken hata: MySQLdb adlı modül yok'
filistea

14
pip install mysql-python

bir hata verdi:

EnvironmentError: mysql_config bulunamadı

sudo apt-get install python-mysqldb

sorunu çözdü.


11

Nasıl çalıştırabilirim:

virtualenv -p python3.5 env/test

Benim env kaynak sonra:

pip install pymysql
pip install django

Sonra startproject koştum ve manage.py içinde bunu ekledim:

+ try:
+     import pymysql
+     pymysql.install_as_MySQLdb()
+ except:
+     pass

Ayrıca, bu iç ayarlar güncellendi:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'foobar_db',
        'USER': 'foobaruser',
        'PASSWORD': 'foobarpwd',
    }
}

Ayrıca configparser==3.5.0sanalenv'de kurdum, gerekli olup olmadığından emin değilim ...

Umarım yardımcı olur,


8

Ubuntu 13.10 64-bit çalıştıran aşağıdaki benim için mükemmel çalıştı:

sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev

Şimdi virtualenv'inize (env klasörü gibi) gidin ve aşağıdakileri yürütün:

sudo ./bin/pip install mysql-python

Aslında çözümü ayrı bir soruda buldum ve aşağıda alıntı yapıyorum:

Virtualenv'i --no-site-Packages anahtarıyla (varsayılan) oluşturduysanız, sanal ortam paketlerine MySQLdb gibi sistem genelinde yüklenmiş eklentiler dahil edilmez.

VirtualSv ile kurulu pip komutu ile MySQLdb'yi kurmanız gerekir. Virtualenv'i bin / enable komut dosyasıyla etkinleştirin ya da MySQLdb kütüphanesini yerel olarak kurmak için sanalenv içinden bin / pip kullanın.

Alternatif olarak, --system-site-package anahtarını kullanarak sistem site paketlerini içeren yeni bir sanal ağ oluşturun.

Bunun OSX ile de çalışması gerektiğini düşünüyorum. Tek sorun yükleme için eşdeğer bir komut almak libmysqlclient-devve sanırım python-devderlemek için gerekli olduğu gibi olurdu mysql-python.

Bu yardımcı olur umarım.


2
Teşekkürler! VirtualSv ile kurulu pip komutu ile MySQLdb'yi kurmanız gerekir. - Yardımcı olur
dobs

Teşekkürler. sudo ./bin/pip install mysql-pythonçok yararlı!
theblackpearl

8

Şunu deneyin: Bu benim için sorunu çözdü.

pip kurulum MySQL-python


2
Teşekkürler. Bu, heroku ve cleardb: django 1.7.1'de tutuşturmak için sorunu düzeltmek için çalıştı.
Ryan Walton


7

sudo apt-get install python-mysqldb Ubuntu'da mükemmel çalışır

pip install mysql-pythonbir Ortam Hatası veriyor


5

Bu, Red Hat Enterprise Linux Server 6.4 sürümü için çalıştı

sudo yum install mysql-devel
sudo yum install python-devel
pip install mysql-python

CentOS 7, seçenek 1 yum install MySQL-python:; seçenek 2 (VIRTUALENV kullanılıyorsa): yum install mysql-devel; venv/bin/pip install MySQL-python.
Hudolejev


3

OSX Mavericks ve Pycharm 3'e yükseltme yaptım ve bu hatayı almaya başladım, pip ve kolay kurulum kullandım ve hatayı aldım:

'/ usr / bin / clang' komutu çıkış durumu 1 ile başarısız oldu.

Bu yüzden Xcode 5'e güncellemem gerekiyor ve pip kullanarak yüklemeyi tekrar denedim.

pip install mysql-python

Bu tüm sorunları düzeltir.


2

Burada ortaya çıkan hata python modülünün içe aktarılmasındadır. Bu, OS X üzerinde $ PYTHONPATH ortam değişkenine python site-paketleri klasörü eklenerek çözülebilir. Böylece .bash_profile dosyasına aşağıdaki komutu ekleyebiliriz:

export PYTHONPATH="$PYTHONPATH:/usr/local/lib/pythonx.x/site-packages/"

* xx'i kullandığınız python sürümüyle değiştirin


Bunu denedim: stackoverflow.com/questions/25459386/… ama başarısız oldu, bu beni kurtardı .. (Y)
Kamaldeep singh Bhatia

2

Python3 kullanıyorsanız, bunu deneyin (İşletim Sistemim Ubuntu 16.04):

sudo apt-get install python3-mysqldb

2

pipWindows 8 64 bit sisteminde benim için çalışmadı. easy_install mysql-pythonbenim için çalışıyor. easy_installPip çalışmazsa pencerelerde ikili dosyalar oluşturmayı önlemek için kullanabilirsiniz .


1

Aynı sorunu OSX 10.6.6'da da yaşadım. Ancak easy_install mysql-pythonterminaldeki basit bir şey, başka bir hıçkırık izlediği için çözmedi:

error: command 'gcc-4.2' failed with exit status 1.

Görünüşe göre, bu sorun XCode3'ten (yerel olarak OSX 10.6 ile birlikte gönderilir) XCode4'e yükseltildikten sonra ortaya çıkar. Bu yeni sürüm ppc arch oluşturma desteğini kaldırır. Aynı durum buysa, daha önce aşağıdaki gibi yapmayı deneyineasy_install mysql-python

sudo bash
export ARCHFLAGS='-arch i386 -arch x86_64'
rm -r build
python setup.py build
python setup.py install

Ned Deily'e bu çözüm için çok teşekkürler. Burayı kontrol et


0

Benim için sorun mysql-python'u yeniden yükleyerek çözüldü

pip uninstall mysql-python
pip install mysql-python


0

Aynı sorunu pipMySQL-python kullanarak kitaplık yükleyerek üstesinden geldim . Settings.py içindeki veritabanı ayarlarımı ilk değiştirdiğimde ve makemigrations komutunu çalıştırdığımda, konsolumda görüntülenen mesajı görebilirsiniz (Çözüm aşağıdaki mesajı takip ediyor, sadece bakın).

  (vir_env) admins-MacBook-Pro-3:src admin$ python manage.py makemigrations
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/core/management/__init__.py", line 312, in execute
    django.setup()
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/Cellar/python/2.7.12_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/contrib/auth/models.py", line 41, in <module>
    class Permission(models.Model):
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/db/models/base.py", line 139, in __new__
    new_class.add_to_class('_meta', Options(meta, **kwargs))
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/db/models/base.py", line 324, in add_to_class
    value.contribute_to_class(cls, name)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/db/models/options.py", line 250, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/db/__init__.py", line 36, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/db/utils.py", line 240, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/db/utils.py", line 111, in load_backend
    return import_module('%s.base' % backend_name)
  File "/usr/local/Cellar/python/2.7.12_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 27, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Sonunda bu sorunu şu şekilde aştım:

(vir_env) admins-MacBook-Pro-3:src admin$ pip install MySQLdb
Collecting MySQLdb
  Could not find a version that satisfies the requirement MySQLdb (from versions: )
No matching distribution found for MySQLdb
(vir_env) admins-MacBook-Pro-3:src admin$ pip install MySQL-python
Collecting MySQL-python
  Downloading MySQL-python-1.2.5.zip (108kB)
    100% |████████████████████████████████| 112kB 364kB/s 
Building wheels for collected packages: MySQL-python
  Running setup.py bdist_wheel for MySQL-python ... done
  Stored in directory: /Users/admin/Library/Caches/pip/wheels/38/a3/89/ec87e092cfb38450fc91a62562055231deb0049a029054dc62
Successfully built MySQL-python
Installing collected packages: MySQL-python
Successfully installed MySQL-python-1.2.5
(vir_env) admins-MacBook-Pro-3:src admin$ python manage.py makemigrations
No changes detected
(vir_env) admins-MacBook-Pro-3:src admin$ python manage.py migrate
Operations to perform:
  Synchronize unmigrated apps: staticfiles, rest_framework, messages, crispy_forms
  Apply all migrations: admin, contenttypes, sessions, auth, PyApp
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
  Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying PyApp.0001_initial... OK
  Applying PyApp.0002_auto_20170310_0936... OK
  Applying PyApp.0003_auto_20170310_0953... OK
  Applying PyApp.0004_auto_20170310_0954... OK
  Applying PyApp.0005_auto_20170311_0619... OK
  Applying PyApp.0006_auto_20170311_0622... OK
  Applying PyApp.0007_loraevksensor... OK
  Applying PyApp.0008_auto_20170315_0752... OK
  Applying PyApp.0009_auto_20170315_0753... OK
  Applying PyApp.0010_auto_20170315_0806... OK
  Applying PyApp.0011_auto_20170315_0814... OK
  Applying PyApp.0012_auto_20170315_0820... OK
  Applying PyApp.0013_auto_20170315_0822... OK
  Applying PyApp.0014_auto_20170315_0907... OK
  Applying PyApp.0015_auto_20170315_1041... OK
  Applying PyApp.0016_auto_20170315_1355... OK
  Applying PyApp.0017_auto_20170315_1401... OK
  Applying PyApp.0018_auto_20170331_1348... OK
  Applying PyApp.0019_auto_20170331_1349... OK
  Applying PyApp.0020_auto_20170331_1350... OK
  Applying PyApp.0021_auto_20170331_1458... OK
  Applying PyApp.0022_delete_postoffice... OK
  Applying PyApp.0023_posoffice... OK
  Applying PyApp.0024_auto_20170331_1504... OK
  Applying PyApp.0025_auto_20170331_1511... OK
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying sessions.0001_initial... OK
(vir_env) admins-MacBook-Pro-3:src admin$ 

0

Bu komutu çalıştır

sudo pip install mysql-python;

şimdi komutunuzu çalıştırabilirsiniz.

python manage.py startapp filename;

0

Mac osx üzerinde virtualenv'de python3.7 ve django 2.1 kullandığım gibi benzer durumlarla karşılaştım. Komutu çalıştırmayı deneyin:

pip install mysql-python
pip install pymysql

__init__.pyProje klasörünüzdeki dosyayı düzenleyin ve aşağıdakileri ekleyin:

import pymysql

pymysql.install_as_MySQLdb()

Sonra çalıştırın: python3 manage.py runserver veya python manage.py runserver

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.