无法在 VS 2017 上正常安装

Cannot install shapely on VS 2017

在 VS 2017 15.6.6 Windows 7 64b 上尝试安装 'shapely' Python 包时,我收到此错误消息

        File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\ctypes\__init__.py", line 348, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 126] The specified module could not be found

我相信,我和

有同样的问题

关于该问题的公认解决方案建议 运行 这个

python -m pip install Shapely-1.5.17-cp36-cp36m-win_amd64.whl

但是那个匀称的包裹 here 已经变成

Shapely, a package for creation, manipulation, and analysis of planar geometry objects based on GEOS.

    Shapely‑1.6.4.post1‑cp27‑cp27m‑win32.whl
    Shapely‑1.6.4.post1‑cp27‑cp27m‑win_amd64.whl
    Shapely‑1.6.4.post1‑cp34‑cp34m‑win32.whl
    Shapely‑1.6.4.post1‑cp34‑cp34m‑win_amd64.whl
    Shapely‑1.6.4.post1‑cp35‑cp35m‑win32.whl
    Shapely‑1.6.4.post1‑cp35‑cp35m‑win_amd64.whl
    Shapely‑1.6.4.post1‑cp36‑cp36m‑win32.whl
    Shapely‑1.6.4.post1‑cp36‑cp36m‑win_amd64.whl
    Shapely‑1.6.4.post1‑cp37‑cp37m‑win32.whl
    Shapely‑1.6.4.post1‑cp37‑cp37m‑win_amd64.whl

问题是:

(screen capture)

我是否应该尝试安装旧版本,据说 Shapely-1.5.17

(Screen capture)

我的猜测是 shapely 有问题,它只在 conda 环境中可用,在 PyPI 中不可用。 Visual Studio 然而,在 conda 可以正常安装之前必须了解它:Visual Studio 使用 "pip install shapely" 而你想要的是 "conda install shapely"。这是我解决问题的方法。

  1. 更新 Visual Studio 2017 至 15.7.4。我在 15.7.3 (?) 时没有用:只有在 15.7.4 版本我才看到正确的 python 包选项(即下面的第 5 步)。
  2. 打开 Python 环境 Window(查看 -> 其他 Windows -> Python 环境)。
  3. 确保 Python 环境 window 非常宽(我已经得到它大约是我屏幕宽度的 60%)。
  4. 如果您没有看到 "Anaconda" 条目,请转到 Windows 搜索,找到并打开 Visual Studio 安装程序。使用安装程序安装适当版本的 Anaconda。
  5. 安装 Anaconda 后,返回 Python 环境 window 并单击 window 左侧的 "Anaconda"。在 window 的中间,您应该会看到一个 Packages (Conda) 条目。 Select 该条目。
  6. 在 Python 环境 window 的右侧,有一个文本框;在那里输入 "shapely"。在您键入时,您应该会看到类似 "Run command: conda install shapely" 的行。单击该行,应该安装 shapely。
  7. 在您项目的属性中,单击“常规”选项卡,然后将解释器更改为您刚刚安装的 Anaconda 版本。

Python 2.7.x, 32 位 Windows
Shapely‑1.6.4.post1‑cp27‑cp27m‑win32.whl

Python 2.7.x, 64 位 Windows
Shapely‑1.6.4.post1‑cp27‑cp27m‑win_amd64.whl

Python 3.4.x, 32 位 Windows
Shapely‑1.6.4.post1‑cp34‑cp34m‑win32.whl

Python 3.4.x, 64 位 Windows
Shapely‑1.6.4.post1‑cp34‑cp34m‑win_amd64.whl

Python 3.5.x, 32 位 Windows
Shapely‑1.6.4.post1‑cp35‑cp35m‑win32.whl

Python 3.5.x, 64 位 Windows
Shapely‑1.6.4.post1‑cp35‑cp35m‑win_amd64.whl

Python 3.6.x, 32 位 Windows
Shapely‑1.6.4.post1‑cp36‑cp36m‑win32.whl

Python 3.6.x, 64 位 Windows
Shapely‑1.6.4.post1‑cp36‑cp36m‑win_amd64.whl

Python 3.7.x, 32 位 Windows
Shapely‑1.6.4.post1‑cp37‑cp37m‑win32.whl

Python 3.7.x, 64 位 Windows
Shapely‑1.6.4.post1‑cp37‑cp37m‑win_amd64.whl