【发布时间】:2019-09-12 10:40:00
【问题描述】:
我是Python的新手,来自R,我不是程序员,所以如果我的问题很愚蠢或微不足道,请耐心等待,但我自己找不到解决方案。
我在 Windows 10 机器上的 Spyder 中使用 Python 3.7。
我正在关注this tutorial,我知道我需要scikit-image 模块。
我了解到外部包应该在 Spyder 相同的环境中导入,所以我从 Spyder 安装它们:
! pip install scikit-image
我得到了这个:
要求已经满足:scikit-image in c:\users\me\appdata\local\programs\python\python37-32\lib\site-packages (0.15.0) ...
pillow、networkx、PyWavelets、imageio、decorator、numpy(我想它们是依赖模块)也是如此。看来我有我需要的。
于是我尝试了上述教程的第一个命令,即:
from skimage import data
但结果似乎是这样的:
Traceback(最近一次调用最后一次):
文件“”,第 1 行,在 从 skimage 导入数据
文件 "C:\Users\me\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\skimage__init__.py", 第 124 行,在 _raise_build_error(e)
文件 "C:\Users\me\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\skimage__init__.py", 第 104 行,在 _raise_build_error %s""" % (e, msg))
ImportError:无法从“skimage._shared”导入名称“geometry” (C:\Users\me\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\skimage_shared__init__.py) scikit-image 似乎没有正确构建。
但我认为这很重要:
您安装的 scikit-image 似乎已损坏。尝试重新安装 按照以下说明进行包装: https://scikit-image.org/docs/stable/install.html
所以我去了那个链接,但标准安装是我试图做的。我做错了什么?
提前致谢
EDIT1: 我已经按照答案,我已经运行了:
!pip uninstall scikit-image --yes
Uninstalling scikit-image-0.15.0:
Successfully uninstalled scikit-image-0.15.0
然后
!pip install scikit-image
结果是already satisfied:
要求已经满足:scikit-image in c:\users\me\appdata\local\continuum\anaconda3\lib\site-packages (0.15.0)
同样适用于:matplotlib、networkx、pillow、imageio、PyWavelets、numpy、cycler、kiwisolver、pyparsing、python-dateutil、decorator、6、setuptools
EDIT2:,在anaconda提示下完成,已经有一些包已经满足了,所以我重新启动了Spyder,并发送:
from skimage import data
给出不同的错误:
Traceback(最近一次调用最后一次):
文件“”,第 1 行,在 从 skimage 导入数据
文件 "C:\Users\me\AppData\Local\Continuum\anaconda3\Lib\site-packages\skimage__init__.py", 第 127 行,在 从 .util.dtype 导入 (img_as_float32,
文件 "C:\Users\me\AppData\Local\Continuum\anaconda3\Lib\site-packages\skimage\util__init__.py", 第 1 行,在 从 .dtype 导入(img_as_float32、img_as_float64、img_as_float,
文件 "C:\Users\me\AppData\Local\Continuum\anaconda3\Lib\site-packages\skimage\util\dtype.py", 第 1 行,在 将 numpy 导入为 np
文件 "C:\Users\me\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\numpy__init__.py", 第 142 行,在 从 。导入核心
文件 "C:\Users\me\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\numpy\core__init__.py", 第 23 行,在 WinDLL(os.path.abspath(文件名))
文件 "C:\Users\me\AppData\Local\Continuum\anaconda3\lib\ctypes__init__.py", 第 356 行,在 init 中 self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 这不是 Win32 的有效应用程序
(最后一行由我翻译)我已经搜索过,但尽管是一个相当知名的问题,但我找不到解决方案。
【问题讨论】:
-
我看到你正在使用 anaconda,尝试从 anaconda 中卸载/安装软件包或使用
conda install -
@Sparky05 ,谢谢,在 anaconda 提示符中发送相同的命令(没有!)我成功卸载/安装了该软件包,我重新启动了 Spyder,我得到了一个不同的错误,上面发布了。
-
我已经创建了一个答案,其中包含一些有用的链接,这些链接指向 python 环境的文档和用于创建它们的 condo 文档(如果你没有 gui,它真的很容易使用)。如果您是
Python的新手并且基于您的R背景,我建议您可以看看jupyter notebooks,它的交互式单元感觉更接近R。 -
(这里是 Spyder 维护者) 您的问题告诉我,在我们的控制台中允许使用
!pip/!conda安装软件包会导致非常混乱和令人讨厌的问题,所以我决定停用它我们的下一个版本。我们的控制台旨在运行 Python 代码,而不是运行系统命令。所以用户不应该使用它来通过它安装软件包,因为 pip 和 conda 都期望一个真正的系统终端,而不是模拟终端的东西,但实际上不是。 -
此外,您不应该使用 pip 安装 Anaconda 提供的软件包(如
scikit-image),因为大多数 pip 和 conda 科学软件包不兼容(Pandas、Numpy、Matplotlib 等),这意味着使用 pip 和 Anaconda 安装它们通常会损坏 Anaconda,您需要重新安装它。因此,通过禁止 pip/conda 安装,我们还可以向用户显示一条消息,指出在 Anaconda 中使用 pip 是一个非常糟糕的主意。
标签: python python-3.x spyder scikit-image