私はPythonとDjangoが初めてです。
PostgreSQLデータベースエンジンバックエンドを使用してDjangoプロジェクトを構成していますが、各データベース操作でエラーが発生しています。たとえば、manage.py syncdb
を実行すると、次のようになります:
C:\xampp\htdocs\djangodir>python manage.py syncdb
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "C:\Python27\lib\site-packages\Django\core\management\__init__.py", line
438, in execute_manager
utility.execute()
File "C:\Python27\lib\site-packages\Django\core\management\__init__.py", line
379, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python27\lib\site-packages\Django\core\management\__init__.py", line
261, in fetch_command
klass = load_command_class(app_name, subcommand)
File "C:\Python27\lib\site-packages\Django\core\management\__init__.py", line
67, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "C:\Python27\lib\site-packages\Django\utils\importlib.py", line 35, in im
port_module
__import__(name)
File "C:\Python27\lib\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 "C:\Python27\lib\site-packages\Django\core\management\sql.py", line 6, in
<module>
from Django.db import models
File "C:\Python27\lib\site-packages\Django\db\__init__.py", line 77, in <modul
e>
connection = connections[DEFAULT_DB_ALIAS]
File "C:\Python27\lib\site-packages\Django\db\utils.py", line 92, in __getitem
__
backend = load_backend(db['ENGINE'])
File "C:\Python27\lib\site-packages\Django\db\utils.py", line 33, in load_back
end
return import_module('.base', backend_name)
File "C:\Python27\lib\site-packages\Django\utils\importlib.py", line 35, in im
port_module
__import__(name)
File "C:\Python27\lib\site-packages\Django\db\backends\postgresql\base.py", li
ne 23, in <module>
raise ImproperlyConfigured("Error loading psycopg module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading psycopg module: No mo
dule named psycopg
誰かが私に何が起こっているかの手がかりを与えることができますか?
psycopg2
Pythonライブラリをインストールする必要があります。
http://initd.org/psycopg/ をダウンロードし、Python PATHの下にインストールします
ダウンロード後、tarballを簡単に解凍し、以下を実行します。
$ python setup.py install
または、必要に応じて、 easy_install または pip のいずれかでインストールします。
(私は理由なしにeasy_installよりもpipを使用することを好みます。)
$ easy_install psycopg2
$ pip install psycopg2
insettings。py
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.postgresql',
'NAME': 'db_name',
'USER': 'db_user',
'PASSWORD': 'db_user_password',
'Host': '',
'PORT': 'db_port_number',
}
}
また、PostgreSQL開発パッケージがインストールされていることを確認してください。 Ubuntuでは、次のようなことをする必要があります。
$ Sudo apt-get install libpq-dev
私が使用するステップバイステップ:
- Sudo apt-get install python-dev
- Sudo apt-get install postgresql-server-dev-9.1
- Sudo apt-get install python-psycopg2 - Or Sudo pip install psycopg2
データベースを管理するためのグラフィックツールをインストールすることをお勧めします。
Sudo apt-get install postgresql pgadmin3
その後、Postgreユーザーのパスワードを変更してから、次の操作を行う必要があります。
- Sudo su
- su postgres -c psql postgres
- ALTER USER postgres WITH PASSWORD 'YourPassWordHere';
- \q
Settings.pyファイルで次のことを行います。
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.postgresql_psycopg2',
'NAME': 'dbname',
'USER': 'postgres',
'PASSWORD': 'postgres',
'Host': '',
'PORT': '',
}
}
追加:
コマンドラインを使用してdbを作成する場合は、次のようにします。
- Sudo su
- su postgres -c psql postgres
- CREATE DATABASE dbname;
- CREATE USER djangouser WITH ENCRYPTED PASSWORD 'myPasswordHere';
- GRANT ALL PRIVILEGES ON DATABASE dbname TO djangouser;
Settings.pyファイルで次のことを行います。
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.postgresql_psycopg2',
'NAME': 'dbname',
'USER': 'djangouser',
'PASSWORD': 'myPasswordHere',
'Host': '',
'PORT': '',
}
}
これは少し長いように思えるかもしれませんが、エラーなしで機能しました。
最初に、Ubuntu Software Centerからphppgadminをインストールします。
次に、ターミナルでこれらの手順を実行します。
Sudo apt-get install libpq-dev python-dev
pip install psycopg2
Sudo apt-get install postgresql postgresql-contrib phppgadmin
Apacheサーバーを起動します
Sudo service Apache2 start
これをターミナルでも実行して、Apacheファイルを編集します。
Sudo gedit /etc/Apache2/Apache2.conf
開いたファイルに次の行を追加します。
Include /etc/Apache2/conf.d/phppgadmin
次にApacheをリロードします。ターミナルを使用します。
Sudo /etc/init.d/Apache2 reload
ここで、新しいデータベースを作成する必要があります。 「postgres」ユーザーとしてログインします。ターミナルで続行します。
Sudo su - postgres
「postgres」のパスワードに問題がある場合は、こちらの答え https://stackoverflow.com/a/12721020/199079 を使用して変更できます。手順を続行します。
データベースを作成します
createdb <db_name>
次に、新しいユーザーを作成して、後でphppgadminにログインし、新しいパスワードを入力します。
createuser -P <new_user>
これで、postgressqlがセットアップされ、次の場所に移動できます。
http://localhost/phppgadmin/
データベースを表示するには、作成した新しいユーザーを使用してログインします。
次のコマンドで「psycopg」をインストールできます。
# Sudo easy_install psycopg2
または、pipを使用できます。
# pip install psycopg2
easy_installとpipは ActivePython に含まれているか、 respectiveproject サイトから手動でインストールされます。
または、単に ビルド済みのWindowsインストーラー を取得します。
差し迫った問題は、 psycopg モジュールが欠落していることです。
Macで同じ問題が発生していました。
解決策は、PIPのみを使用してすべてをインストールし、いくつかのものに触れることでした。
最初にPIPをインストールします:https://pip.pypa.io/en/latest/
次に、pg_configへのパスがPATH(echo $ PATH)にあるかどうかを確認したいbash_profileを編集します。
vi /Users/<user>/.bash_profile
次の行を追加します。
export PATH=$PATH:/path/to/pg_config/bin
Pg_configの場所がわからない場合は、「locate」ツールを使用できますが、locate.dbが最新であることを確認してください(古いLocate.dbを使用し、存在しないパスを使用していました)。
Sudo /usr/libexec/locate.updatedb
locate pg_config
次に、Django(必要な場合)およびpsycopg2をインストールします。
Sudo pip install Django
Sudo pip install psycopg2
そして、settings.py(localhost:defaultport)
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.postgresql_psycopg2',
'NAME': 'dbname',
'USER': 'postgres',
'PASSWORD': 'postgres',
'Host': '',
'PORT': '',
}
}
あいさつ!
Fedora 20、Django 1.6.5、postgresql 9.3。*を使用していて、psycopg2モジュールが必要な場合は、次のようにします。
yum install postgresql-devel
easy_install psycopg2
あなたが私のようであれば、よく文書化されたlibpq-dev rpmを見つけるのに苦労するかもしれません...上記は私のためにちょうど今働いた。
$ Sudo apt-get install libpq-dev
年、これは私の問題を解決します。これを実行した後、次を実行します。pip install psycopg2
psycopg2
をpipまたはsetup.py経由でインストールするには、Visual Studio 2008(より正確には実行可能ファイルvcvarsall.bat)が必要です。 Windowsでそれをインストールしたり、適切なPATH変数を設定したりする管理者権限がない場合は、既にコンパイルされたライブラリを here からダウンロードできます。
これは、ubuntuサーバーでPostgreSQL
をセットアップするための非常に優れたステップバイステッププロセスの1つです。 Ubuntu 16.04
とその動作で試してみました。