[python] Django에서 PostgreSQL 데이터베이스를 설정하는 방법
저는 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
구성
에서 설정 평
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
이제 터미널에서도 이것을 실행하여 아파치 파일을 편집하십시오.
sudo gedit /etc/apache2/apache2.conf
열린 파일에 다음 행을 추가하십시오.
Include /etc/apache2/conf.d/phppgadmin
이제 아파치를 다시로드하십시오. 터미널을 사용하십시오.
sudo /etc/init.d/apache2 reload
이제 새 데이터베이스를 만들어야합니다. ‘postgres’사용자로 로그인합니다. 터미널에서 계속하십시오.
sudo su - postgres
‘postgres’의 비밀번호에 문제가있는 경우 https://stackoverflow.com/a/12721020/1990793 에서 답변을 사용하여 변경 하고 단계를 계속할 수 있습니다 .
이제 데이터베이스 만들기
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 에 포함되어 있거나 각 프로젝트 사이트 에서 수동으로 설치 됩니다.
또는 미리 빌드 된 Windows 설치 프로그램을 가져옵니다 .
답변
즉각적인 문제는 psycopg 모듈 이 없다는 것 입니다.
답변
Fedora 20, Django 1.6.5, postgresql 9.3. *를 사용하고 psycopg2 모듈이 필요한 경우 다음을 수행하십시오.
yum install postgresql-devel
easy_install psycopg2
당신이 나와 같다면, 잘 문서화 된 libpq-dev rpm을 찾는 데 어려움이있을 수 있습니다. 위의 내용은 지금 저에게 효과적이었습니다.