gpt4 book ai didi

python - 安装 Postgis (PostgreSQL)(Django)(Mac OS x 10.7) 时遇到问题

转载 作者:行者123 更新时间:2023-11-29 13:35:44 28 4
gpt4 key购买 nike

编辑:

好的,我卸载了我拥有的版本并按照下面列出的说明重新安装:

我跑了:

POSTGIS_SQL_PATH=/usr/local/Cellar/postgis15/1.5.3/share/postgis
# Creating the template spatial database.
createdb -E UTF8 template_postgis
createlang -d template_postgis plpgsql # Adding PLPGSQL language support.
# Allows non-superusers the ability to create from this template
psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis';"
# Loading the PostGIS SQL routines
psql -d template_postgis -f $POSTGIS_SQL_PATH/postgis.sql
psql -d template_postgis -f $POSTGIS_SQL_PATH/spatial_ref_sys.sql
# Enabling users to alter spatial tables.
psql -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;"
psql -d template_postgis -c "GRANT ALL ON geography_columns TO PUBLIC;"
psql -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"

然后运行:

$ createdb -T template_postgis newdb
$ createuser --createdb poop
Shall the new role be a superuser? (y/n) y

现在这是我得到的数据库列表:

$ psql -l
List of databases
Name | Owner | Encoding | Collation | Ctype | Access privileges
------------------+-------+----------+-------------+-------------+-------------------
newdb | User | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | User | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | User | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/User +
| | | | | User=CTc/User
template1 | User | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/User +
| | | | | User=CTc/User
template_postgis | User | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(5 rows)

确保我的版本是正确的:

$ psql newdb
psql (9.0.8)
Type "help" for help.

newdb=# SELECT PostGIS_full_version();
postgis_full_version
--------------------------------------------------------------------------------------------------
POSTGIS="1.5.3" GEOS="3.3.5-CAPI-1.7.5" PROJ="Rel. 4.8.0, 6 March 2012" LIBXML="2.7.3" USE_STATS
(1 row)

newdb=# \dt
List of relations
Schema | Name | Type | Owner
--------+------------------+-------+-------
public | geometry_columns | table | User
public | spatial_ref_sys | table | User
(2 rows)

看起来所有的依赖关系都得到了处理,数据库看起来很开心,一切看起来都很干净! (但是,我在上面授予所有用户访问权限的 geograph_colums 在哪里?)

现在,settings.py:

DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'newdb',
'USER': 'poop', # yes, I named my user poop
}
}

现在当我运行时:

$ python manage.py syncdb

我得到了各种文件的链接,这些文件以以下结尾:

psycopg2.OperationalError: could not connect to server: Permission denied
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

显然我的数据库正在运行,因为我可以 psql 进入它。但是权限设置不正确吗?

pg_hba.conf:

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust

回答: Postgresql socket error on OSX 10.7.3 when running Django's syncdb

最佳答案

我不确定当前的 Django 版本是否与 PostGIS 2.0 兼容。您可能想尝试安装 PostGIS 1.5。这也可能意味着安装 PostgreSQL 9.0。这两个包都是自制的,但你需要“点击”版本公式:

brew update
brew tap homebrew/versions
brew install postgresql9

然后您需要将默认的 postgis15 包更改为指向 postgresql9(postgresql 包的最新更新使其成为与postgis15不兼容,公式尚未更新):

brew edit postgis15

postgresql的两个实例改成postgresql9,eg:

第 12 行:

depends_on 'postgresql9'

第 30 行:

postgresql = Formula.factory 'postgresql9'

然后安装postgis15:

brew install postgis15

并像以前一样创建相关数据库。

注意 psql 和 Python psycopg2 包连接到正确的数据库 (postgres 9.0)。 psycopg2 还需要针对正确的库进行编译。确保这一点的最简单方法是先从自制软件中卸载 postgresql 包(如果您不将其用于其他任何用途)并移动 /usr/local/var/postgres 数据目录,在安装 postgis15 之前:

brew uninstall postgresql
mv /usr/local/var/postgres /usr/local/var/postgres9.1
initdb /usr/local/var/postgres -E utf8
brew install postgresql9

... 并针对新库重新编译 psycopg2(到您的 virtualenv 中):

pip uninstall psycopg2
pip install psycopg2

这可能没有帮助,但使用已知可用的版本总是好的,除非您愿意试验、调试和提交补丁:-)

关于python - 安装 Postgis (PostgreSQL)(Django)(Mac OS x 10.7) 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12547872/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com