Macportsを使用してPythong2.6、psycopg2、pgAdmin3をインストールしています。私のsettings.pyは:
DATABASE_ENGINE = 'postgresql_psycopg2' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'Oracle'.
DATABASE_NAME = 'mysite' # Or path to database file if using sqlite3.
DATABASE_USER = 'postgres' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_Host = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
python manage.py syncdbを実行するとエラーが発生します:
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Django/core/management/__init__.py", line 362, in execute_manager
utility.execute()
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Django/core/management/__init__.py", line 303, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Django/core/management/base.py", line 195, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/Django/core/management/base.py", line 221, in execute
self.validate()
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/postgresql_psycopg2/base.py", line 22, in <module>
raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2
注意してください、私はこのようなものの完全な初心者です。私はもともとPHPの男で、小さな個人プロジェクトでPythonを試しています。Postgresを「オン」にする必要がありますか?
また、Sudo python manage.py runserver 8080を実行すると、次のエラーが表示されます。
Validating models...
Unhandled exception in thread started by <function inner_run at 0x1242670>
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/postgresql_psycopg2/base.py", line 22, in <module>
raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2
案内してください。返事は大歓迎です。
おかげで、
ウェンバート!
psycopg2
インストールに問題があるようです– Pythonはそれを見つけられません。これはPythonインストールの問題であり、Djangoの問題ではありません。
Pythonインタープリターを使用して手動でロードし、動作するかどうかを確認できます。
$ python
>>> import psycopg2
ImportError
例外が発生した場合、インストールは間違っています。すべてのディレクトリのリストを取得するには、Pythonがモジュールを探し、sys.path
を使用します。
$ python
>>> import sys
>>> print sys.path
sys.path
変数を変更して、Pythonのモジュール検索パスにカスタムディレクトリを追加することもできます。これは、それぞれのimport
ステートメントの前のどこかで行います。
import sys
sys.path.append("my-path")
# ...
import psycopg2
pip
がインストールされている場合は、次を実行して不足している拡張機能をインストールします。
$ pip install psycopg2
レコードについては、別の理由で同じエラーが発生しました。
私は入れていました
'ENGINE': 'Django.db.backends.postgresql'
の代わりに
'ENGINE': 'Django.db.backends.postgresql_psycopg2'
settings.py
手順に従ってください:
python-dev
libpq-dev
psycopg2
ライブラリーをインストールします:easy_install psycopg2
Psycopg2がインストールされていないことに気付きました
aptitude install python-psycopg2
魔法のように働いた
インストールしましたが、Pythonは明らかにモジュールpsycopg2を見つけることができません。これは通常、モジュールがPythonのパスにないためです。/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
。存在しない場合、MacPortsはpsycopg2の配置場所を教えてくれましたか?見つけられる場合は、site-packages
ディレクトリに移動するだけで問題ありません。
私にとっては、psycopg2は実際にインストールされましたが、Djangoが実行されていたvirtualenvにはインストールされませんでした。次の2つのステップで修正されました。
Sudo apt-get build-dep python-psycopg2
Sudo /opt/myenv/bin/pip install psycopg2
はい、ティムの答えは私にとっても機能します。接頭辞「Django.db.backends」なしでも機能します。また。ただし、settings.pyで言及したデータベースまたはスキーマを作成することを忘れないでください。
DATABASE_NAME = 'your_db_name'
データベースクライアントを手動で使用して、「python manage.py syncdb」を実行したときに同じ問題が発生しないようにします。手動で作成しなかったため、立ち往生しました。ビルドアウトを使用したために、同じ問題が発生した可能性があります。
同じエラーが発生しましたが、virtualenvにpython
およびpython26 ./manage.py runserver
実行可能ファイルしかなかったときにpython2.6
を使用していたためです(したがってシステムpython26
が使用されていました。 psycopg2
がインストールされていませんでした
これは私を助けました:
ENVにPostgreSQLのbinパスを追加したところ、必要なdllを微調整できました:C:\ Program Files(x86)\ PostgreSQL\9.4\bin
https://groups.google.com/forum/#!topic/robotframework-users/qLq9KvHe1wE
ここでも同じですが、現在のプロジェクトでは見逃していたので、メインのプロジェクトディレクトリに移動してインストールしました。
pip install psycopg2
そしてそれは働いた
私はWindowsで、psycopg2をインストールしていましたが、64ビットバージョンです。したがって、私の修正は、32ビットの1つを here からダウンロードし、仮想環境をアクティブにしたPowerShellでダウンロードすることでした。
pip uninstall psycopg2
easy_install C:\WHEREVER_I_DOWNLOADED_IT\psycopg2-2.6.1.win32-py3.4-pg9.4.4-release.exe
(Windows Python 3.4インストーラーは、easy_installおよびpipを自動的にインストールします。pipは、easy_installを使用して最初にインストールした場合でも、パッケージを削除する最も簡単な方法です。)
ティムの答えは私にも役立ちました。デフォルトでは、settings.pyはパッケージ名なしで「postgresql_psycopg2」、「mysql」などのオプションを表示します。 「Django.db.backends」で始まるプレフィックス(少なくともpostgresql_psycopg2で)私のために働いた。
このエラーは、Django postgresqlを使用してバックエンドがpsycopg2を直接requirements.txtファイルに追加することで、このエラーを取得できます。
OSXでhomebrewを更新した後、最近この問題が発生しました。 psycopg2はすでにvirtualenvにリストされていました。私はちょうどpsycopg2を再インストールし、再び動作しました:
pip install --force-reinstall psycopg2