我被难住了。我正在开发一些enhancements to scikit-image,它们是failing the automated build tests,可能是由于舍入错误。因此,我需要让自动测试在我的Windows系统上运行,这样我就可以调试并找出问题所在。到目前为止,我已经尝试了两种方法,但都不起作用:
在我的Anaconda Python 3.6环境中,当我尝试运行自动测试时,出现以下错误:
RuntimeError: module compiled against API version 0xc but this version of numpy is 0xb
……我在其他情况下也提到过,但未能消除。
由于自动测试确实在基于python3.5的系统上运行(但失败),因此我认为如果尝试本地python3.5环境,事情可能会成功。在这里,我遇到的问题是,尽管安装了,环境仍然找不到MS C++编译器^ {CD2}}。它安装在C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.15.26726\bin\HostX86\x64\
中,由我的python3.6环境找到并执行,但是我的python3.5环境没有找到它,尽管我将该目录添加到我的路径中。我应该补充一点,我的python3.6环境发现它,而没有将目录添加到路径中。我知道Python3.5和3.6都使用MSVC14.0。
如果可能的话,我更愿意在我的python3.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
有关。由于这个包最初没有显式地安装在我的新环境中,所以我尝试安装它的各种版本,包括一些降低了numpy
和scipy
的版本。还是和上面一样的错误。你知道吗
在做了更多的research之后,当实际安装了1.15.4版时,似乎看到了numpy1.13.x。以下是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
我已经为python3.6解决了这个问题,我认为上面有足够的信息让精明的人能够找出问题所在。我将在下面的答案中给出解决方案。你知道吗
一个干净构建的python3.5环境找不到编译器,所以这个问题仍然存在。你知道吗
你可以尝试的一种方法是升级你的numpy
pip install numpy upgrade
如这里所述:RuntimeError: module compiled against API version a but this version of numpy is 9
否则(如果出于某种原因您无法升级numpy),我建议您为scikit映像项目使用虚拟环境。我刚刚在windows10上试过,并且成功地执行了测试。我的步骤(从cmd,在项目文件夹中):
conda uninstall scikit-image
删除任何以前生成/安装的版本conda -n scikit-image python=3.6
为这个项目创建一个虚拟环境(我使用了python3.6,但是您可以将它改为3.5)activate scikit-image
激活了新的虚拟环境pip install -r requirements.txt
安装的依赖项(没有这个步骤,我就无法安装测试的依赖项)pip install -e .
pytest
事实证明
pytest
并没有安装在正确的环境中,它是从base
调用的,后者确实安装了numpy1.13.3。在干净构建的python3.6环境中安装它至少解决了python3.6的问题。你知道吗相关问题 更多 >
编程相关推荐