OSX 10.6 में पायथन और Django के साथ MySQLdb का उपयोग कैसे करें?


259

यह OSX 10.6 उपयोगकर्ताओं के लिए एक बहुत चर्चित मुद्दा है, लेकिन मैं ऐसा समाधान नहीं ढूंढ सका हूं जो काम करता हो। यहाँ मेरा सेटअप है:

पायथन 2.6.1 64bit Django 1.2.1 MySQL 5.1.47 osx10.6 64bit

मैं --no-site-package के साथ एक virtualenvwrapper बनाता हूं, फिर Django स्थापित किया गया है। जब मैं virtualenv को सक्रिय करता हूं और python manage.py syncdb चलाता हूं, मुझे यह त्रुटि मिलती है:

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

मैंने पायथन एडाप्टर के लिए MySQL भी स्थापित किया है , लेकिन कोई फायदा नहीं हुआ (हो सकता है कि मैंने इसे अनुचित तरीके से स्थापित किया हो?)।

इससे पहले किसी ने निपटाया?


5
यह समस्या पायथन एडाप्टर के लिए MySQL के अपूर्ण / गलत इंस्टॉलेशन का परिणाम थी। विशेष रूप से, मुझे mysql_config फ़ाइल को / usr / स्थानीय / mysql / bin / mysql_config पर इंगित करने के लिए पथ को संपादित करना था - इस लेख में अधिक विस्तार से चर्चा की गई: daktuth.com/blog/entry/…
जो

बस ऐसा करें ---------- apt-get install अजगर-माईसक्लब
शैडो ०३५

pip install mysqlमेरे लिए काम किया!
इवान कैरास्को क्विरोज़

जवाबों:


330

मेरे पास एक ही त्रुटि थी और pip install MySQL-pythonइसे मेरे लिए हल कर दिया।

वैकल्पिक इंस्टॉल:

  • यदि आपके पास पाइप नहीं है, easy_install MySQL-pythonतो काम करना चाहिए।
  • यदि आपका अजगर पैकेजिंग सिस्टम द्वारा प्रबंधित किया जाता है, तो आपको उस सिस्टम का उपयोग करना पड़ सकता है (उदाहरण के लिए sudo apt-get install ...)

नीचे, सोली नोट करता है कि यदि आपको निम्न त्रुटि मिलती है:

EnvironmentError: mysql_config not found

... तो आपके पास एक और सिस्टम निर्भरता मुद्दा है। इसे हल करना सिस्टम से सिस्टम में अलग-अलग होगा, लेकिन डेबियन-व्युत्पन्न सिस्टम के लिए:

sudo apt-get install python-mysqldb


2
हाँ, मैंने Mysql-python को खोजने और स्थापित करने के लिए Synaptic Package Manager का उपयोग किया और इसने बहुत अच्छा काम किया। धन्यवाद।
टॉमाज़ इनिविक्ज़

6
फेडोरा 17 के तहत: sudo yum install MySQL-python:)
g19fanatic

20
$ mysql_configवर्तमान में 'mysql_config' प्रोग्राम स्थापित नहीं है। आप इसे t yping द्वारा स्थापित कर सकते हैं:sudo apt-get install libmysqlclient-dev
anders

1
इस उत्तर को django के आधिकारिक दस्तावेज में जोड़ना चाहिए
Siwei शेन '

1
मुझे लगता है कि मैं इस त्रुटि के साथ अद्वितीय व्यक्ति हूं 'कमांड पाइथॉन setup.py अंडा_info त्रुटि कोड 1 के साथ विफल रहा है' रन के बाद 'पाइप स्थापित MySQL-python'
RicardoGonzales

62

उबंटू चलाना, मुझे करना था:

sudo apt-get install python-mysqldb

8
वह ओएस एक्स चला रहा है, न कि उबंटू
फेसुंडो कैस्को

8
इसके अलावा यह virtualenv में नहीं रखा जाएगा
22

58

अन्य उत्तरों में जोड़ते हुए, निम्नलिखित ने मुझे स्थापना mysql-python को पूरा करने में मदद की:

virtualenv, mysql-python, pip: कोई भी जानता है कैसे?

उबंटू पर ...

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

यदि आपके पास उचित अनुमतियां नहीं हैं, तो कमांड की शुरुआत में 'sudo' जोड़ना न भूलें।


1
कुंजी apt-get install अजगर-देव है। पता नहीं क्यों मैं 2 साल बाद अजगर का एक देव संस्करण स्थापित कर रहा हूं, लेकिन यह अजगर 2.7.3 का उपयोग करके आज के रूप में काम करता है। केवल 3 घंटे बर्बाद हुए।
user798719

23

नीचे इस आदेश का प्रयास करें। वे मेरे लिए काम करते हैं:

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

इस विधि से मेरी समस्या हल हो गई। इससे पहले कि अन्य सभी सुझाव मुझे एक त्रुटि संदेश देंCommand "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
बहुत बहुत धन्यवाद, ऊपर बताए गए सभी प्रयास करें। OSX 10.11 पर किसी ने भी काम नहीं किया है
पाउलो

1
@LearnAWK यह काम नहीं करता है। मुझे अभी भी त्रुटि कमांड मिलती है "python setup.py egg_info" त्रुटि कोड 1 के साथ / निजी / var / फ़ोल्डर्स / 3m / 97mbsh5x2bnghhk55130bh_h0000gn / T / pip-build-FFU1vL / MySQL-python /
Stony

19

mysql_configरास्ते पर होना चाहिए। मैक पर, करते हैं

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

4
मैंने यह कोशिश की है और अभी भी एक ही त्रुटि मिलती है: 'अनुचित तरीके से बढ़ाएं ("MySQLdb मॉड्यूल लोड करने में त्रुटि:% s"% e "django.core.exception.ImproperlyConfigured: त्रुटि MySQLdb मॉड्यूल:
MySQLdb

14
pip install mysql-python

एक त्रुटि उठाई:

एनवायरनमेंटर: mysql_config नहीं मिला

sudo apt-get install python-mysqldb

समस्या को ठीक किया।


11

मैंने इसे कैसे काम किया:

virtualenv -p python3.5 env/test

मेरे एनवी को सोर्स करने के बाद:

pip install pymysql
pip install django

उसके बाद, मैंने स्टार्टप्रोजेक्ट चलाया और मैनेजमेन्डो के अंदर, मैंने इसे जोड़ा:

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

इसके अलावा, इसे अंदर की सेटिंग में अपडेट करें:

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

मैंने configparser==3.5.0अपने virtualenv में भी स्थापित किया है, निश्चित नहीं है कि यह आवश्यक था या नहीं ...

आशा करता हूँ की ये काम करेगा,


8

निम्नलिखित मेरे लिए पूरी तरह से काम किया, Ubuntu 13.10 64-बिट चल रहा है:

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

अब, अपने virtualenv (जैसे कि एनवी फोल्डर) में नेविगेट करें और निम्नलिखित को निष्पादित करें:

sudo ./bin/pip install mysql-python

मुझे वास्तव में एक अलग प्रश्न में समाधान मिला और मैं इसे नीचे उद्धृत कर रहा हूं:

अगर आपने virtualenv को --no-site-package switch (डिफ़ॉल्ट) के साथ बनाया है, तो सिस्टम-वाइड इंस्टॉल किए गए परिवर्धन जैसे MySQLdb को वर्चुअल एन्वायरमेंट पैकेज में शामिल नहीं किया जाता है।

आपको VirtualSQL के साथ इंस्टॉल किए गए पाइप कमांड के साथ MySQLdb इंस्टॉल करना होगा। या तो बिन / सक्रिय स्क्रिप्ट के साथ virtualenv को सक्रिय करें, या स्थानीय रूप से MySQLdb लाइब्रेरी को स्थापित करने के लिए virtualenv के भीतर से बिन / पाइप का उपयोग करें।

वैकल्पिक रूप से, सिस्टम-साइट-पैकेज स्विच का उपयोग करके शामिल सिस्टम साइट-संकुल के साथ एक नया वर्चुअन बनाएँ।

मुझे लगता है कि यह भी OSX के साथ काम करना चाहिए। केवल समस्या को स्थापित करने के लिए एक समतुल्य आदेश प्राप्त होगा libmysqlclient-devऔर python-devजैसा mysql-pythonकि मुझे लगता है कि संकलन के लिए आवश्यक है ।

उम्मीद है की यह मदद करेगा।


2
धन्यवाद! आपको VirtualSQL के साथ इंस्टॉल किए गए पाइप कमांड के साथ MySQLdb इंस्टॉल करना होगा। - मदद करता है
dobs

धन्यवाद। sudo ./bin/pip install mysql-pythonबहुत मददगार है!
theblackpearl

8

इसे आज़माएँ: इससे मेरे लिए समस्या हल हो गई।

पाइप स्थापित करें MySQL-python


2
धन्यवाद। इसने मेरे लिए समस्या को हल करने के लिए काम किया और उसके साथ हिज्ब: क्लोज्ड: प्रज्वलित करें django 1.7.1।
रयान वाल्टन

7

यह समस्या पायथन एडाप्टर के लिए MySQL के अपूर्ण / गलत इंस्टॉलेशन का परिणाम थी। विशेष रूप से, मुझे इस लेख में / usr / स्थानीय / mysql / bin / mysql_config पर इंगित करने के लिए mysql_config फ़ाइल का पथ संपादित करना था - इस लेख में अधिक विस्तार से चर्चा की: http://ddrauth.com/blog/entry/python-and-and Django सेटअप-मैक-os-एक्स तेंदुए /


7

sudo apt-get install python-mysqldb ubuntu में पूरी तरह से काम करता है

pip install mysql-pythonएक पर्यावरण त्रुटि उठाता है


5

इसने Red Hat Enterprise Linux सर्वर रिलीज़ 6.4 के लिए काम किया

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

सेंटोस 7, विकल्प 1 yum install MySQL-python:; विकल्प 2 (अगर virtualenv का उपयोग करके) yum install mysql-devel; venv/bin/pip install MySQL-python:।
हुडोलेज़ेव

4

आप के रूप में स्थापित कर सकते हैं pip install mysqlclient


यह मेरे लिए इसे क्रमबद्ध करता है, जैसा कि मेरा मानना ​​है कि यह पायथन 3 के लिए उपयोग होने वाला संस्करण है
एक स्टार

3

मैंने OSX Mavericks और Pycharm 3 को अपग्रेड किया और इस त्रुटि को प्राप्त करना शुरू किया, मैंने पाइप और आसान स्थापित किया और त्रुटि प्राप्त की:

कमांड '/ usr / bin / clang' निकास स्थिति 1 के साथ विफल हुआ।

इसलिए मुझे Xcode 5 को अपडेट करने की आवश्यकता है और पाइप का उपयोग करके इंस्टॉल करने के लिए फिर से कोशिश की।

pip install mysql-python

जो सभी समस्याओं को ठीक करता है।


2

यहां उठाई गई त्रुटि अजगर मॉड्यूल को आयात करने में है। यह OS X पर पर्यावरण चर $ PYTHONPATH में अजगर साइट-संकुल फ़ोल्डर को जोड़कर हल किया जा सकता है। इसलिए हम निम्न कमांड को .bash_profile फ़ाइल में जोड़ सकते हैं:

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

* आपके द्वारा उपयोग किए जा रहे अजगर संस्करण के साथ xx को बदलें


मैंने यह कोशिश की: stackoverflow.com/questions/25459386/… लेकिन असफल रहा, इसने मुझे बचा लिया .. (Y)
कमलदीप सिंह भाटिया

2

यदि आप python3 का उपयोग कर रहे हैं, तो यह प्रयास करें (मेरा OS Ubuntu 16.04 है):

sudo apt-get install python3-mysqldb

2

pipविंडोज 8 64 बिट्स सिस्टम पर मेरे लिए काम नहीं किया। easy_install mysql-pythonमेरे लिये कार्य करता है। easy_installयदि पाइप काम नहीं करता है, तो आप खिड़कियों पर बायनेरिज़ के निर्माण से बचने के लिए उपयोग कर सकते हैं ।


1

मुझे OSX 10.6.6 पर भी यही समस्या थी। लेकिन easy_install mysql-pythonटर्मिनल पर एक साधारण ने इसे हल नहीं किया क्योंकि एक और हिचकी ने पीछा किया:

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

जाहिरा तौर पर, यह मुद्दा XCode3 (जो मूल रूप से OSX 10.6 के साथ भेज दिया गया है) से XCode4 में अपग्रेड करने के बाद उत्पन्न होता है। यह नया ver पीपीसी आर्क बनाने के लिए समर्थन को हटा देता है। यदि इसका वही मामला है, तो पहले की तरह करने की कोशिश करेंeasy_install mysql-python

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

इस समाधान के लिए नेड डीली को बहुत धन्यवाद। यहा जांचिये


0

मेरे लिए समस्या सिर्फ mysql-python को पुन: स्थापित करने से हल हो गई

pip uninstall mysql-python
pip install mysql-python


0

मैंने पाइपMySQL-python का उपयोग करके लाइब्रेरी स्थापित करके उसी समस्या को काबू किया । आप मेरे कंसोल पर प्रदर्शित संदेश को तब देख सकते हैं जब मैंने पहली बार सेटिंग्स डेटाबेस में अपनी डेटाबेस सेटिंग्स बदलीं और कार्यान्वित makemigrations कमांड (समाधान नीचे संदेश का पालन कर रहा है, बस इसे देखें)।

  (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

अंत में मैंने इस समस्या को इस प्रकार काबू किया:

(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

मुझे आपके जैसी स्थितियों का सामना करना पड़ा है कि मैं मैक ओएसएक्स पर virtualenv में python3.7 और django 2.1 का उपयोग कर रहा हूं। कमांड चलाने का प्रयास करें:

pip install mysql-python
pip install pymysql

और __init__.pyअपने प्रोजेक्ट फ़ोल्डर में फ़ाइल संपादित करें और निम्नलिखित जोड़ें:

import pymysql

pymysql.install_as_MySQLdb()

फिर दौड़ें: python3 manage.py runserver या python manage.py runserver

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.