3

我是 python 的一个相对较新的学生,我仍然在寻找我的方式。我通常通过堆栈溢出很快找到答案,但这让我很难过

我根本无法让形状和地图文件与 ipython 笔记本一起使用。我似乎无法安装底图或 fiona

这是命令:

import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.colors import Normalize
from matplotlib.collections import PatchCollection
from mpl_toolkits.basemap import Basemap
from shapely.geometry import Point, Polygon, MultiPoint, MultiPolygon
from shapely.prepared import prep
from pysal.esda.mapclassify import Natural_Breaks as nb
from descartes import PolygonPatch
import fiona
from itertools import chain

和错误:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-120-17f76aeda5fd> in <module>()
      3 from matplotlib.colors import Normalize
      4 from matplotlib.collections import PatchCollection
----> 5 from mpl_toolkits.basemap import Basemap
      6 from shapely.geometry import Point, Polygon, MultiPoint, MultiPolygon
      7 from shapely.prepared import prep

ImportError: No module named 'mpl_toolkits.basemap'

我收到 fiona 和其他组件的类似错误。请问我做错了什么?

我过去已经安装了 matplotlib 和其他组件,我尝试使用 pip 命令时没有出现问题,如下所示:

!conda install basemap
!pip install pyshp 
!pip install fiona
!pip install descartes 

输出:

Using Anaconda Cloud api site https://api.anaconda.org
...The following specifications were found to be in conflict:
  - basemap -> matplotlib
  - basemap -> numpy 1.10*|1.7*|1.8*|1.9*
  - basemap -> python 2.7*
  - conda -> conda-env *|<2.5|>=2.5.0
  - conda -> menuinst
  - conda -> pycosat
  - conda -> python 2.7*
  - conda -> pyyaml
  - conda -> requests
  - conda-env (target=conda-env-2.4.5-py35_0.tar.bz2) -> python 2.7*|3.3*|3.4*|3.5*
  - cycler (target=cycler-0.10.0-py35_0.tar.bz2) -> python 2.7*|3.4*|3.5*
  - cycler (target=cycler-0.10.0-py35_0.tar.bz2) -> six
  - matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> numpy 1.10*|1.11*|1.6*|1.7*|1.8*|1.9*
  - matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> pyqt
  - matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> python-dateutil
  - matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> pytz
  - matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> tk 8.5.*
  - menuinst (target=menuinst-1.3.2-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - mkl-service (target=mkl-service-1.1.2-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - nose (target=nose-1.3.7-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - numexpr (target=numexpr-2.5-np110py35_0.tar.bz2) -> numpy 1.11*|1.6*
  - numexpr (target=numexpr-2.5-np110py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - numpy (target=numpy-1.10.4-py35_0.tar.bz2) -> nose
  - numpy (target=numpy-1.10.4-py35_0.tar.bz2) -> python 2.7*
  - pip (target=pip-8.1.1-py35_1.tar.bz2) -> python 2.7*
  - pycosat (target=pycosat-0.6.1-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - pyparsing (target=pyparsing-2.0.3-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - pyqt (target=pyqt-4.11.4-py35_5.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - pyqt (target=pyqt-4.11.4-py35_5.tar.bz2) -> qt >=4.8.6|>=4.8.7
  - pyqt (target=pyqt-4.11.4-py35_5.tar.bz2) -> sip >=4.16.4
  - python 3.5*
  - python-dateutil (target=python-dateutil-2.5.1-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - pytz (target=pytz-2016.2-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - pyyaml (target=pyyaml-3.11-py35_3.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - qt (target=qt-4.8.7-vc14_7.tar.bz2) -> @vc10
  - qt (target=qt-4.8.7-vc14_7.tar.bz2) -> @vc14
  - qt (target=qt-4.8.7-vc14_7.tar.bz2) -> @vc9
  - requests (target=requests-2.9.1-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - scikit-learn (target=scikit-learn-0.17.1-np110py35_0.tar.bz2) -> nose
  - scikit-learn (target=scikit-learn-0.17.1-np110py35_0.tar.bz2) -> numpy 1.11*|1.6*
  - scikit-learn (target=scikit-learn-0.17.1-np110py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - scikit-learn (target=scikit-learn-0.17.1-np110py35_0.tar.bz2) -> scipy
  - scipy (target=scipy-0.17.0-np110py35_0.tar.bz2) -> numpy 1.11*|1.6*
  - scipy (target=scipy-0.17.0-np110py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - setuptools (target=setuptools-20.3-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - sip (target=sip-4.16.9-py35_2.tar.bz2) -> python 2.7*|3.4*|3.5*
  - six (target=six-1.10.0-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
  - tk (target=tk-8.5.18-vc14_0.tar.bz2) -> @vc10
  - tk (target=tk-8.5.18-vc14_0.tar.bz2) -> @vc14
  - tk (target=tk-8.5.18-vc14_0.tar.bz2) -> @vc9
  - wheel (target=wheel-0.29.0-py35_0.tar.bz2) -> python 2.7*|3.3*|3.4*|3.5*
Use "conda info <package>" to see the dependencies for each package.
Requirement already satisfied (use --upgrade to upgrade): pyshp in c:\users\i\anaconda3\lib\site-packages
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
Collecting fiona
  Using cached Fiona-1.7.0.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\i\AppData\Local\Temp\pip-build-30kz6icw\fiona\setup.py",
line 198, in <module>
        copy_gdalapi_c(gdalversion)
    NameError: name 'gdalversion' is not defined

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\i\AppData\Local\Temp\pip-build-30kz6icw\fiona\
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
Requirement already satisfied (use --upgrade to upgrade): descartes in c:\users\i\anaconda3\lib\site-packages
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

笔记本服务器的版本是 4.1.0,运行在 Python 3.5.1 |Anaconda 4.0.0 (32-bit)| (默认,2016 年 3 月 4 日,15:28:01)[MSC v.1900 32 位(英特尔)]

4

2 回答 2

4

我建议使用conda-forge 频道来安装这些带有conda. 在命令行上:

conda install -c conda-forge pyshp fiona descartes

使用 pip 在 Windows 上安装将不起作用(您需要正确的编译器,除非 PyPI 上提供了二进制轮子,但这些软件包并非如此)

conda-forge 频道是由社区主导的 conda 软件包集合。

于 2016-06-15T14:21:31.143 回答
1

如果您还没有安装 Anaconda,更简单的解决方案是简单地libgdal-dev从系统的包管理器中安装。例如,sudo apt-get install libgdal-dev

于 2016-08-30T15:42:57.127 回答