gpt4 book ai didi

python - 在 Windows 上编译 scikit-image 来运行测试

转载 作者:太空宇宙 更新时间:2023-11-03 21:36:14 25 4
gpt4 key购买 nike

我被难住了。我正在开发一些enhancements to scikit-image分别是failing the automated build tests ,可能是由于舍入错误。因此,我需要在 Windows 系统上运行自动化测试,以便我可以调试并找出问题所在。到目前为止,我已经尝试了两种方法,但都不起作用:

  1. 在我的 Anaconda Python 3.6 环境中,当我尝试运行自动化测试时,出现以下错误:

    RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb

    ...我在其他上下文中找到了引用,但无法消除。

  2. 由于自动化测试确实在基于 Python 3.5 的系统上运行(但失败),因此我认为如果我尝试本地 Python 3.5 环境,事情可能会成功。在这里,我遇到了一个问题,尽管已安装,但环境找不到 MS C++ 编译器 cl.exe 。它安装在 C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.15.26726\bin\HostX86\x64\并且由我的 Python 3.6 环境找到并执行,但尽管我将该目录添加到我的 PATH 中,但我的 Python 3.5 环境找不到它。我应该补充一点,我的 Python 3.6 环境在没有将目录添加到 PATH 的情况下找到了它。据我了解,Python 3.5 和 3.6 都使用 MSVC 14.0。

如果可能的话,我更愿意在我的 Python 3.6 环境中修复该问题。非常感谢任何帮助。

更新

我制作了一个全新的 Python 3.6 conda 环境,如下所示:

conda create --name sk36 python=3.6
conda activate sk36
conda install scikit-image --only-deps
conda install cython
git clone https://github.com/scikit-image/scikit-image.git
cd scikit-image
pip install -e .
pytest skimage/feature

我收到的具体错误如下:

..\Anaconda3\lib\site-packages\py\_path\local.py:662: in pyimport
__import__(modname)
skimage\__init__.py:135: in <module>
from .data import data_dir
skimage\data\__init__.py:13: in <module>
from ..io import imread, use_plugin
skimage\io\__init__.py:7: in <module>
from .manage_plugins import *
skimage\io\manage_plugins.py:24: in <module>
from .collection import imread_collection_wrapper
skimage\io\collection.py:12: in <module>
from ..external.tifffile import TiffFile
skimage\external\tifffile\__init__.py:1: in <module>
from .tifffile import imsave, imread, imshow, TiffFile, TiffWriter, TiffSequence
skimage\external\tifffile\tifffile.py:292: in <module>
from . import _tifffile
E RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb

...这似乎与 tifffile 有关。 。由于此软件包最初并未显式安装在我的新环境中,因此我尝试安装它的各个版本,包括一些降级的 numpyscipy 。还是和上面一样的错误。

做了更多的事情research看起来有些东西正在看到 numpy 1.13.x,而实际上安装了版本 1.15.4。这是 conda list 的完整输出:

# Name                    Version                   Build  Channel
blas 1.0 mkl anaconda
ca-certificates 2018.03.07 0 anaconda
certifi 2018.10.15 py36_0 anaconda
cloudpickle 0.6.1 py36_0 anaconda
cycler 0.10.0 py36h009560c_0 anaconda
cython 0.29 py36ha925a31_0 anaconda
dask-core 0.20.0 py36_0 anaconda
decorator 4.3.0 py36_0 anaconda
freetype 2.9.1 ha9979f8_1 anaconda
icc_rt 2017.0.4 h97af966_0 anaconda
icu 58.2 ha66f8fd_1 anaconda
imageio 2.4.1 py36_0 anaconda
intel-openmp 2019.0 118 anaconda
jpeg 9b hb83a4c4_2 anaconda
kiwisolver 1.0.1 py36h6538335_0 anaconda
libpng 1.6.35 h2a8f88b_0 anaconda
libtiff 4.0.9 h36446d0_2 anaconda
matplotlib 3.0.1 py36hc8f65d3_0 anaconda
mkl 2019.0 118 anaconda
mkl_fft 1.0.6 py36hdbbee80_0 anaconda
mkl_random 1.0.1 py36h77b88f5_1 anaconda
networkx 2.2 py36_1 anaconda
numpy 1.15.4 py36ha559c80_0 anaconda
numpy-base 1.15.4 py36h8128ebf_0 anaconda
olefile 0.46 py36_0 anaconda
openssl 1.0.2p hfa6e2cd_0 anaconda
package_has_been_revoked 1.0 0 enable_revoked
pillow 5.3.0 py36hdc69c19_0 anaconda
pip 18.1 py36_0 anaconda
pyparsing 2.3.0 py36_0 anaconda
pyqt 5.9.2 py36h6538335_2 anaconda
python 3.6.7 h33f27b4_1 anaconda
python-dateutil 2.7.5 py36_0 anaconda
pytz 2018.7 py36_0 anaconda
pywavelets 1.0.1 py36h8c2d366_0 anaconda
qt 5.9.6 vc14h1e9a669_2 anaconda
scikit-image 0.15.dev0 <pip>
scipy 1.1.0 py36h4f6bf74_1 anaconda
setuptools 40.5.0 py36_0 anaconda
sip 4.19.8 py36h6538335_0 anaconda
six 1.11.0 py36_1 anaconda
sqlite 3.25.2 hfa6e2cd_0 anaconda
tifffile 0.15.1 py36h452e1ab_1001 conda-forge
tk 8.6.8 hfa6e2cd_0 anaconda
toolz 0.9.0 py36_0 anaconda
tornado 5.1.1 py36hfa6e2cd_0 anaconda
vc 14.1 h21ff451_3 anaconda
vs2015_runtime 15.5.2 3 anaconda
wheel 0.32.2 py36_0 anaconda
wincertstore 0.2 py36h7fe50ca_0 anaconda
zlib 1.2.11 h8395fce_2 anaconda

更新2

我已经解决了 Python 3.6 的问题,并且我认为上面有足够的信息,聪明的人能够找出问题所在。我会将解决方案放在下面的答案中。

干净构建的 Python 3.5 环境无法找到编译器,因此该问题仍然存在。

最佳答案

您可以尝试的一种方法是升级您的 numpy

pip install numpy --upgrade

如下所述:RuntimeError: module compiled against API version a but this version of numpy is 9

否则(如果由于某种原因你无法升级 numpy)我建议为 scikit-image 项目使用虚拟环境。我刚刚在 Windows 10 上尝试过并能够成功执行测试。我的步骤(从cmd,在项目文件夹内):

  • conda uninstall scikit-image 以删除任何以前构建/安装的版本
  • conda -n scikit-image python=3.6为本项目创建虚拟环境(我使用的是python 3.6,但你可以将其更改为3.5)
  • activate scikit-image 激活新的虚拟环境
  • pip install -r requests.txt -- 安装的依赖项(如果没有这一步,我就无法安装测试的依赖项)
  • pip install -e .
  • pytest

关于python - 在 Windows 上编译 scikit-image 来运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53229570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com