2009-12-14 38 views
9

Có một số câu trả lời tuyệt vời cho câu hỏi này, tuy nhiên, chúng đã lỗi thời.Django + MySQL trên Mac OS 10.6.2 Snow Leopard

tôi đã có thể để có được các mô-đun cài đặt, nhưng "python manage.py runserver" không thành công với

iMac:myproject drhoden$ python manage.py runserver 
Validating models... 
Unhandled exception in thread started by <function inner_run at 0x10496f0> 
Traceback (most recent call last): 
    File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/commands/runserver.py", line 48, in inner_run 
    self.validate(display_num_errors=True) 
    File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 249, in validate 
    num_errors = get_validation_errors(s, app) 
    File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/validation.py", line 22, in get_validation_errors 
    from django.db import models, connection 
    File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 41, in <module> 
    backend = load_backend(settings.DATABASE_ENGINE) 
    File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 17, in load_backend 
    return import_module('.base', 'django.db.backends.%s' % backend_name) 
    File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/backends/mysql/base.py", line 13, in <module> 
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) 
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dynamic module does not define init function (init_mysql) 

^CiMac:segisys drhoden$ 

Tương tự như vậy, từ vỏ python:

iMac:myproject drhoden$ python 
Python 2.6.4 (r264:75821M, Oct 27 2009, 19:48:32) 
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import MySQLdb 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "build/bdist.macosx-10.3-fat/egg/MySQLdb/__init__.py", line 19, in <module> 

    File "build/bdist.macosx-10.3-fat/egg/_mysql.py", line 7, in <module> 
    File "build/bdist.macosx-10.3-fat/egg/_mysql.py", line 6, in __bootstrap__ 
ImportError: dynamic module does not define init function (init_mysql) 
>>> 

Sử dụng MySQL-python -1.2.3c1 với setuptools-0.6c11-py2.6.egg

Mọi trợ giúp sẽ được đánh giá cao.

+1

Bạn đã nâng cấp MySQL của mình sau khi cài đặt MySQL-python chưa? –

Trả lời

21

Tôi cuối cùng đã giải quyết được vấn đề của riêng mình, với tất nhiên, tiềm thức và sự trợ giúp có ý thức từ nhiều bài đăng, blog và nhật ký thư tôi đã đọc. Tôi sẽ cung cấp cho các liên kết nếu tôi có thể nhớ.

Tóm lại, tôi đã cài đặt lại mọi thứ bằng MacPorts.

Sau khi chỉnh sửa ~/.bash_profile và nhận xét tất cả các sửa đổi trước đó thành $ {PATH}, tôi đã tải xuống dmg for Snow Leopard và chạy qua quá trình cài đặt.

Sau đó, mở thiết bị đầu cuối và chạy bản cập nhật tự.

sudo port selfupdate 
sudo port install python26 

Phần thứ hai, cài đặt Python 2.6, mất vĩnh viễn. Nhưng khi nó hoàn thành nó nhắc tôi với những điều sau đây:

To fully complete your installation and make python 2.6 the default, please run 

sudo port install python_select 
sudo python_select python26 

Tôi đã làm cả hai và họ đã đi nhanh chóng.

Tôi quên đề cập đến cách lệnh 'tìm kiếm cổng' tiện dụng. Tôi đã tìm kiếm 'mysql' và tương tự như tìm thứ cần gõ sau khi 'cài đặt'. Nhưng tôi đã tiến hành cài đặt lại cả máy khách và máy chủ cho MySQL. Có lẽ tôi đã làm điều này theo thứ tự ngược lại, nhưng kết quả cuối cùng đã làm việc tốt.

sudo port install mysql5 
... 
---> Installing mysql5 @5.1.41_0 
The MySQL client has been installed. 
If you also want a MySQL server, install the mysql5-server port. 

Vì vậy, một cách tự nhiên:

sudo port install mysql5-server 

Tôi yêu như thế nào rất nhiều người trong các cài đặt macports cung cấp cho bạn thông tin phản hồi để làm gì tiếp theo.Khi kết thúc cài đặt máy chủ, nó cho biết:

****************************************************** 
* In order to setup the database, you might want to run 
* sudo -u _mysql mysql_install_db5 
* if this is a new install 
****************************************************** 

Đây là một cài đặt mới cho tôi (không có bất kỳ lược đồ cục bộ nào). Để có đầy đủ, và để tham khảo của riêng tôi, đây là đầu ra của việc chạy lệnh đó:

Installing MySQL system tables... 
OK 
Filling help tables... 
OK 

To start mysqld at boot time you have to copy 
support-files/mysql.server to the right place for your system 

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! 
To do so, start the server, then issue the following commands: 

/opt/local/lib/mysql5/bin/mysqladmin -u root password 'new-password' 
/opt/local/lib/mysql5/bin/mysqladmin -u root -h iMac.local password 'new-password' 

Alternatively you can run: 
/opt/local/lib/mysql5/bin/mysql_secure_installation 

which will also give you the option of removing the test 
databases and anonymous user created by default. This is 
strongly recommended for production servers. 

See the manual for more instructions. 

You can start the MySQL daemon with: 
cd /opt/local ; /opt/local/lib/mysql5/bin/mysqld_safe & 

You can test the MySQL daemon with mysql-test-run.pl 
cd /opt/local/mysql-test ; perl mysql-test-run.pl 

Please report any problems with the /opt/local/lib/mysql5/bin/mysqlbug script! 

The latest information about MySQL is available at http://www.mysql.com/ 
Support MySQL by buying support/licenses from http://shop.mysql.com/ 

Sắp xong. Trước đó vào 'cổng search'ing tôi đi qua cổng thú vị này:

py26-mysql @ 1.2.2 (python, devel, cơ sở dữ liệu) giao diện Python với mysql

Với nhiều, nhiều hy vọng rằng điều này sẽ cung cấp cho tôi gói MySQLdb, tôi đã cài đặt nó (và nó đã làm).

sudo port install py26-mysql 

Sau khi tôi sửa đổi trình thông dịch python đã cố gắng nhập MySQLdb, mọi thứ theo cách của tôi trong suốt thời gian này.

iMac:~ drhoden$ python 
Python 2.6.4 (r264:75706, Dec 15 2009, 18:00:14) 
[GCC 4.2.1 (Apple Inc. build 5646) (dot 1)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import MySQLdb 
/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated from sets import ImmutableSet 
>>> 

Cảnh báo, nhưng đã hoạt động !!

Chỉ cần một điều nữa:

sudo port install py26-django 

Sau tất cả những điều tôi đã cuối cùng có thể khuấy động dự án Django của tôi và từ xa kết nối với máy chủ MySQL của công ty tôi !! Nó có thể không có cần thiết để cài đặt lại Django bằng cách sử dụng MacPorts, nhưng tôi sẽ không có nguy cơ biến chứng.

+3

'python_select' dường như đã lỗi thời. Sử dụng 'sudo port chọn python python26' – hughes

1

Điều này xảy ra khi bạn có phần mềm 32 và 64 bit hỗn hợp. Về cơ bản, đối với Snow Leopard, bạn cần phải cài đặt gói MySQL 64bit (vẫn được liệt kê là 10.5, nhưng đó không phải là vấn đề), sau đó thực hiện lại việc cài đặt lại python-mysql một cách dễ dàng. Tất cả sẽ hoạt động.

+0

Tôi đã cài đặt mysql-5.1.41-osx10.5-x86_64.dmg Từ thư mục MySQL-python-1.2.3c1 mà tôi đã chạy: sudo easy_install. Nó đưa ra một số cảnh báo như: tệp không thuộc kiến ​​trúc bắt buộc –

4

tôi đã viết một blog gửi cách đây vài tháng sau cài đặt thành công của tôi về MySQL trên Snow Leopard:

http://jboxer.com/2009/09/installing-mysql-on-snow-leopard/

Nếu bạn làm theo những bước này, cần (trên lý thuyết) khắc phục vấn đề của bạn (mà âm thanh như nó được gây ra bởi sự pha trộn giữa phần mềm 32 bit và 64 bit).

Nhân tiện, tôi không cố gắng tự quảng bá ở đây; văn bản trong bài đăng trên blog về cơ bản là những gì tôi đã đăng ở đây và tôi đang cố gắng áp dụng DRY cho nhiều lĩnh vực hơn trong cuộc sống của mình :)

+0

Liên kết của bạn đã chết .. – Totic

Các vấn đề liên quan