Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python GeoDjango:无法导入名称GEOSException已修复,现在[WinError 126]_Python_Django_Postgresql_Geodjango - Fatal编程技术网

Python GeoDjango:无法导入名称GEOSException已修复,现在[WinError 126]

Python GeoDjango:无法导入名称GEOSException已修复,现在[WinError 126],python,django,postgresql,geodjango,Python,Django,Postgresql,Geodjango,我使用的是python 3.4、postgres 9.3.5和Windows 7 我遵循这一点尝试让GeoDjango工作: 当我尝试将django.contrib.gis添加到已安装的应用程序(在pycharm中)时,或者当我尝试运行 下面是回溯 但是,在这个目录中 C:\Python34\Lib\site packages\django\contrib\gis\geos 有geometry.py(其中包含类GEOSGeometry)和error.py(其中包含类GEOSException)

我使用的是python 3.4、postgres 9.3.5和Windows 7

我遵循这一点尝试让GeoDjango工作:

当我尝试将django.contrib.gis添加到已安装的应用程序(在pycharm中)时,或者当我尝试运行

下面是回溯

但是,在这个目录中 C:\Python34\Lib\site packages\django\contrib\gis\geos 有geometry.py(其中包含类GEOSGeometry)和error.py(其中包含类GEOSException)

在python shell中运行此命令时,不会抛出任何错误:

>>> from django.contrib.gis.geos.error import GEOSException 
谢谢你对这个问题的思考。 一堆其他的回溯,然后:

  File "C:\Python34\lib\site-packages\django\contrib\gis\forms\fields.py", line
8, in <module>
    from django.contrib.gis.geos import GEOSException, GEOSGeometry
ImportError: cannot import name 'GEOSException'
这很有效,但现在我得到了一个WinError 126

  File "C:\Python34\lib\site-packages\django\contrib\gis\forms\fields.py", line
8, in <module>
    from django.contrib.gis.geos import GEOSException, GEOSGeometry
  File "C:\Python34\lib\site-packages\django\contrib\gis\geos\__init__.py", line
 9, in <module>
    from .libgeos import geos_version, geos_version_info  # NOQA: flake8 detects
 only the last __all__
  File "C:\Python34\lib\site-packages\django\contrib\gis\geos\libgeos.py", line
61, in <module>
    lgeos = CDLL(lib_path)
  File "C:\Python34\lib\ctypes\__init__.py", line 351, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found
文件“C:\Python34\lib\site packages\django\contrib\gis\forms\fields.py”,第行
8,在
从django.contrib.gis.geos导入GEOSException,GEOSGeometry
文件“C:\Python34\lib\site packages\django\contrib\gis\geos\\uuuuuu init\uuuuu.py”,第行
9,在
从.libgeos导入geos_版本,geos_版本信息#NOQA:flake8
只有最后一个__
文件“C:\Python34\lib\site packages\django\contrib\gis\geos\libgeos.py”,第行
61,在
lgeos=CDLL(库路径)
文件“C:\Python34\lib\ctypes\\uuuu init\uuuu.py”,第351行,在\uuu init中__
self.\u handle=\u dlopen(self.\u名称,模式)
OSError:[WinError 126]找不到指定的模块

我不清楚是什么模块找不到,也不清楚如何修复它

我解决了这个问题。看看我在这里做了什么:

抱歉,此错误消息不清楚。我已经申请了一张改善的罚单 它:

错误消息的原因是您没有安装 位于
系统路径上且可导入的GEO的数量。(就是
在里面
或者以下步骤无法正常工作。)

如果查看django/contrib/gis/geos/init.py,您将看到 仅当HAS_GEOS为True时,才会在此处导入GEOSException。这就是为什么 从django.contrib.gis.geos导入GEOSException将成功,如果 安装了GEOS,但在其他情况下失败

至于
win126
错误:

我不确定到底是什么帮助最终修复了它,但:

  • 我将python版本从64位更改为32位
  • 更新路径变量的脚本非常混乱,所以我手动将它们更改为应该的状态
  • 我错误地添加了的
    GEOS\u LIBRARY\u路径
  • C:\program files\OSGeo4W\bin\geos\u C.dll

    但我应该补充一点:

    C:\OSGeo4W\bin\geos\u C.dll

    现在,我可以从项目设置中删除
    GEOS\u LIBRARY\u路径
    ,事情仍然有效,所以我猜这一定是64位vs 32位的问题,或者路径问题

      File "C:\Python34\lib\site-packages\django\contrib\gis\forms\fields.py", line
    8, in <module>
        from django.contrib.gis.geos import GEOSException, GEOSGeometry
      File "C:\Python34\lib\site-packages\django\contrib\gis\geos\__init__.py", line
     9, in <module>
        from .libgeos import geos_version, geos_version_info  # NOQA: flake8 detects
     only the last __all__
      File "C:\Python34\lib\site-packages\django\contrib\gis\geos\libgeos.py", line
    61, in <module>
        lgeos = CDLL(lib_path)
      File "C:\Python34\lib\ctypes\__init__.py", line 351, in __init__
        self._handle = _dlopen(self._name, mode)
    OSError: [WinError 126] The specified module could not be found