导入错误:没有名为pkg_resources的模块

时间:2017-06-06 14:40:16

标签: python-2.7 anaconda importerror gdal

更新:

我找到了问题的原因。 gdal_merge.py中的第一行是

#!C:/Users/akg/AppData/Local/Continuum/Anaconda2\python.exe

前两个字符#!,所谓的 shebang ,告诉一个名为Python Launcher的程序,py.exe,用于运行脚本的Python版本。在我的情况下,py.exe注册不正确。 (py.exe自带Python3.3或更高版本,并在C:\ Windows \ py.exe下安装。)

我用> ftype Python.File测试了它,打印了

Python.File="C:\Python27\ArcGISx6410.3\python.exe" "%1" %*

这会导致使用随ArcInfo附带的python27,无论shebang之后的文本是什么。并且在这个特定的Python安装中没有pkg_resources,因此错误消息。

修复是下载并安装最新版本的Python3,它也重新安装了py.exe。现在,运行> ftype Python.File打印

`Python.File="C:\WINDOWS\py.exe" "%L" %*`

在此之后,运行> gdal_merge.py可以正常工作。

OLD:

我在Windows 7系统上安装了带有 Anaconda2 gdal 的Python 2.7。

我安装了gdal:

> conda install -c conda-forge gdal

当我从Windows命令提示符下运行gdal_merge.py(位于../Anaconda2/Scripts文件夹下)时:

> gdal_merge.py

我收到错误消息:ImportError: No module named pkg_resources

在gdal_merge.py中是行:

__import__('pkg_resources').run_script('GDAL==2.2.0', 'gdal_merge.py')

导致导入错误。 Python尝试导入pkg_resources,但无法找到它。 (我已经测试过添加其他模块的导入,例如pandas,但它会导致相同的错误。)

但是pkg_resources可以从Python提示符导入:

>>> import pkg_resources
>>> pkg_resources
<module 'pkg_resources' from 'C:\Users\akg\AppData\Local\Continuum\Anaconda2\lib\site-packages\pkg_resources\__init__.pyc'>

那么为什么在运行gdal_merge.py时找不到包?对此有何解决方法?

我试图把../Anaconda2/Lib/site-packages放在PYTHONPATH中,这有帮助。然而,这并不理想:当我启动QGIS时,这将导致它使用错误的路径导入sip模块,这导致QGIS中的导入错误。 QGIS附带自己的Python发行版。但是当PYTHONPATH指向Anaconda2的站点包时,QGIS将尝试从它加载而不是自己的站点包文件夹。我还读过,没有必要使用PYTHONPATH让Anaconda工作。

0 个答案:

没有答案