当前位置: 首页 > 面试题库 >

Windows上的GeoDjango:“找不到GDAL库” /“ OSError:[WinError 126]找不到指定的模块”

燕意蕴
2023-03-14
问题内容

我一直在尝试设置Windows计算机,以便可以使用具有PostGIS扩展名的本地postgreSQL。安装此程序后,我希望能够在本地将geodjango创建一个项目,然后再将其放入云中。我已经在使用SQLite DB的本地计算机上与Django一起工作了一段时间,但是由于下一个项目将部分基于基于坐标的数据,因此我想设置正确的环境。

导入说明:我已经安装了迷你康达在单独的环境中运行。我在工作的时候确实激活了这个环境“发展”

我试图在线关注大多数geodjango信息/教程,但无法使其正常工作。我所做的事情(大多遵循此步骤:https : //docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows):

  1. 从https://www.enterprisedb.com/downloads/postgres-postgresql-downloads下载并安装最新(10.3)PostgreSQL设置
  2. 安装后,我还使用Application Stack Builder安装了PostGis
  3. 我已经从https://trac.osgeo.org/osgeo4w/安装了OSGeo4W
  4. 我已经按照geodjango网站(https://docs.djangoproject.com/en/2.0/ref/contrib/gis/install/#windows)所述创建了一个批处理脚本,并以管理员身份运行(除了它将路径设置为python,因为自从我已经使用python一段时间以来,python已经在其中了)
  5. 我在psql shell中尝试了一些命令,我​​想我已经创建了一个名称为:geodjango,用户名:*并通过:*的数据库。
  6. 我不知道是否已给geodjango用户所有特权,但我怀疑是这样。
    完成所有这些之后,我创建了一个新的django项目,并在settings.py中添加了一些部分:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.gis',
'nameOfMyApp',
]

我在settings.py中也有这个:

DATABASES = {
'default': {
    'ENGINE': 'django.contrib.gis.db.backends.postgis',
    'NAME': 'geodjango',
    'USER': '****',
    'PASSWORD': '****',
    'HOST': 'localhost',
}
}

# FOR GEODJANGO
POSTGIS_VERSION = (2, 4, 3)

当我尝试在Django中设置数据库时,我会运行(在正确的文件夹中):

python manage.py makemigrations

我收到以下错误:

django.core.exceptions.ImproperlyConfigured: Could not find the GDAL library (tried "gdal202", "gdal201", "gdal20", "gdal111", "gdal110", "gdal19"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.

我已尝试解决此问题,但似乎无济于事。有人可以帮我在本地设置所有这些吗?

更新7-3-2018:

  • 我尝试自己亲自安装GDAL,(来自:http : //www.gisinternals.com/query.html? content=filelist&file=release-1911-x64-gdal-2-2-3-mapserver-7-0- 7.zip通用核心组件)
  • 我已经从https://www.lfd.uci.edu/~gohlke/pythonlibs/安装了python绑定(假设是)。仍然我得到同样的错误。
  • 我还尝试将GDAL_LIBRARY_PATH设置为GDAL目录或gdal-data目录(位于GDAL目录中)。
    现在我得到以下错误:
OSError: [WinError 126] The specified module could not be found

(当.dll存在时…)


问题答案:

我发现以下适用于Windows:

  • 运行python以检查你的python是32位还是64位。
  • 将相应的OSGeo4W(32或64位)安装到C:\OSGeo4W或中C:\OSGeo4W64:
  • 注意:选择“快速Web-GIS安装”,然后单击“下一步”。
  • 在“选择软件包”列表中,确保已选择GDAL;默认情况下,MapServer和Apache也处于启用状态,可能会被安全地取消选中。
  • 确保以下内容包含在你的中settings.py:
import os
if os.name == 'nt':
    import platform
    OSGEO4W = r"C:\OSGeo4W"
    if '64' in platform.architecture()[0]:
        OSGEO4W += "64"
    assert os.path.isdir(OSGEO4W), "Directory does not exist: " + OSGEO4W
    os.environ['OSGEO4W_ROOT'] = OSGEO4W
    os.environ['GDAL_DATA'] = OSGEO4W + r"\share\gdal"
    os.environ['PROJ_LIB'] = OSGEO4W + r"\share\proj"
    os.environ['PATH'] = OSGEO4W + r"\bin;" + os.environ['PATH']
  • 运行python manage.py check以验证geodjango是否正常工作。


 类似资料:
  • 问题内容: 我在Windows 7 64位上使用Anaconda 3.1.0。我已经安装了tensorflow(GPU)。运行以下命令时出现错误。 完整的追溯 问题答案: cudnn lib版本是错误的,所以我替换了正确版本的cudnn lib,它起作用了。

  • 问题内容: 请指出我缺少的一点: openSUSE 11.3 编辑: 问题答案: 你需要的包报头和共享库链接, 开发 除了正常的包 部署 。就发行版而言,有两种不同的用例。 在我的分布中: 并提供了CRAN的所有构建时检查功能,可以按预期从CRAN程序包中正常工作。 2016年末更新: 正如@ JoshO’Brien在评论中指出 较小更新:在2016年运行Ubuntu 14.04.2的这里似乎已被

  • 我正在组装一个jar,它可以让我调用仅对本地人可用的命令(jar使用本地人而不是实际程序)。现在,每当我加载DLL时,我都会遇到一个问题。这是错误: 我不知道这个错误的原因是什么。我确保将本机库路径设置为包含本机的文件夹。有人有想法吗?

  • 我正在使用Rcpp和另一个第三方C库开发一个包。当我试图安装包时,我得到了 在32位Windows操作系统中,根据我同事的建议,我通过将以下DLL的位置从MingW添加到系统路径,解决了这个问题。 但64位Windows,我得到相同的错误,即使与dll虽然我使用32位R。 所以我的问题是: 有没有办法知道为什么错误发生?我是说我想知道哪个模块不见了。也许冗长的选项在哪里?

  • 我试图打印TSC-244 Pro条形码标签打印机从GWT网络应用程序。他们给出tsclib.dll。因此,我使用jna.jar并将tsclib.dll文件复制到C:\windows和[my_project_dir]\war\WEB-INF\lib。它的工作,但当我部署到apache Tomcat。它不工作,我有以下错误。请给我解决办法。谢谢。 严重:分派传入的RPC调用com.google.gwt

  • 问题内容: 我先安装,然后创建数据库。然后,我创建了一个数据库图并收到以下错误: 如何解决该错误,以便可以创建数据库图? 问题答案: 您可以通过以下步骤解决此问题: 1)删除该位置的所有文件。 2)将以下链接复制并粘贴到浏览器中,然后下载文件。 3)解压缩文件并将其粘贴到先前的位置。 链接:-> harshgupta71.blogspot.in/2013/02/the-specified-modu