5

私はdjangoチュートリアルに従っています。多くの人が質問をしましたが、python-mysqlをインストールした後、python manage.py syncdbを実行しようとするとまだこのエラーが発生するため、私の状況は少し独特だと思います.

私はmacportsを使用してpythonインストールを管理しているため、virtualenvにいます。virtualenvを作成しました

virtualenv code/vdjango --no-site-packages --python=/opt/local/bin/python

これの前にmacportsを使用してdjangoをインストールしpy27-djangoましたが、virtualenvを作成した後、djangoをvirtualenvにインストールする方がよいと考えたので、使用しましたpip install django==1.5

django チュートリアルによると、settings.py ファイルを編集してから python manage.py syncdb を実行すると、次のエラーが発生します。

[~/code/vdjango/newsite]$python manage.py syncdb
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
    utility.execute()
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 77, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 8, in <module>
    from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/sql.py", line 9, in <module>
    from django.db import models
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module>
    backend = load_backend(connection.settings_dict['ENGINE'])
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/db/utils.py", line 27, in load_backend
    return import_module('.base', backend_name)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Users/mac-pro/code/vdjango/lib/python2.7/site-packages/_mysql.so
  Reason: image not found

python-mysql パッケージをインストールしたことを確認するために、再度 pip install を実行しました。

(vdjango)mac-pro@localhost:[~/code/vdjango/newsite]$pip install python-mysqldb
Downloading/unpacking python-mysqldb
  Could not find any downloads that satisfy the requirement python-mysqldb
No distributions at all found for python-mysqldb
Storing complete log in /Users/mac-pro/.pip/pip.log

ここで何が起こっているのですか?チュートリアルをさらに進めるために必要なものはすべて揃っているように見えますが、python/django が mysqldb がないことについて不平を言っています。

4

1 に答える 1

18

私の libmysqlclient.18.dylib は /usr/local/mysql/lib/ にありましたが、私のシステムは /usr/lib/ でそれを探していました。問題を修正した /usr/lib に libmysqlclient.18.dylib のシンボリックリンクを作成することになりました。

1.) libmysqlclient.18.dylib が /usr/local/mysql/lib/ に存在することを確認します。

シェルを開きます。

sudo -s
ls /usr/local/mysql/lib/ | grep libmysqlclient.18.dylib

次のファイルが表示されます。

libmysqlclient.18.dylib

そうでない場合は、システムでファイルの場所を検索します。

find / -name libmysqlclient.18.dylib

2.) /usr/lib に libmysqlclient.18.dylib のシンボリック リンクを作成します。

シェルに次のコマンドを入力します。

ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

libmysqlclient.18.dylib ファイルが /usr/local/mysql/lib にない場合は、最初のパスを libmysqlclient.18.dylib への適切なパスに置き換えます。

うまくいけば、それは役に立ちます。

于 2013-09-15T16:09:22.003 に答える