[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

누군가가 무슨 일이 일어나고 있는지에 대한 단서를 줄 수 있습니까?



답변

설치해야합니다. psycopg2Python 라이브러리 .

설치


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을 찾는 데 어려움이있을 수 있습니다. 위의 내용은 지금 저에게 효과적이었습니다.