刚刚进入Python,需要安装一些数字处理包,其中包括在Windows 7机器上运行的Cygwin环境中的scipy。注意:我不想重制整个版本或主版本,我只想安装 scipy 以供使用。SciPy 网站说我应该能够使用 pip 安装它。但是,当我尝试安装它时:
$ pip install scipy
。我收到一个错误:
pip._internal.exceptions.InstallationError: Command errored out with exit status 1:
。后跟表面上导致错误的命令行。如果我剪切/粘贴命令行以查看导致错误的原因,我会得到大量输出,包括以下内容:
Building wheel for Cython (setup.py): finished with status 'error'
ERROR: Failed building wheel for Cython
因此,似乎制作软件包的人都会调用 gcc 来实际编译一个依赖项 - 在这种情况下为 cython——它实际上已经安装:
$ cython --version
Cython version 0.29.14
我看到 Scipy 包需要 Cython>=0.29.13,但不幸的是 pip 似乎没有考虑到这一点。 它不仅以某种方式错过了 Cython 已经存在的事实,它实际上正在尝试编译一个全新的...... @_@ [有趣的是,Cython网站说最新版本是0.28.5...]
仅供参考:
$ pip --version
pip 19.3.1 from /usr/lib/python3.6/site-packages/pip (python 3.6)
我还尝试从 https://pypi.org/simple/scipy 下载存档并将其提取,然后尝试在本地使用 pip:
$ pip install --no-index --find-links=. .
Looking in links: .
Processing /usr/local/src/scipy-1.4.1
Installing build dependencies ... error
ERROR: Command errored out with exit status 1:
.
.
.
ERROR: Could not find a version that satisfies the requirement wheel (from versions: none)
ERROR: No matching distribution found for wheel
----------------------------------------
ERROR: Command errored out with exit status 1:
所以我找到了一些Windows二进制文件。 试图从 https://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy 下载它们,我遇到了一个.whl
文件。 研究,我发现.whl
文件实际上是一个独立的轮子,可安装w/pip。 我尝试这样做:
pip install --use-wheel --no-index --find-links=. scipy-1.4.1-cp38-cp38-win32.whl
。我得到
no such option: --use-wheel
然后:
$ pip install --no-index --find-links=. *.whl
ERROR: scipy-1.4.1-cp38-cp38-win32.whl is not a supported wheel on this platform.
所以显然Windows发行版在Cygwin下不受支持。
有人对此有任何经验吗? 关于我还能尝试什么的任何想法?
谢谢。
Cygwin有自己的打包系统~~已经有一个Cygwin的scipy二进制包~~。更新:我不在我的电脑前,所以我不确定,但一些谷歌搜索表明可能没有python3-scipy包。见下文...
当你安装Cygwin时,你可能已经浏览了图形安装程序,它允许你选择要在Cygwin中安装的软件包。您始终可以通过重新运行安装程序并选择其他软件包来安装新软件包。
但是,我发现在现有的 Cygwin 安装中使用命令行包安装程序 apt-cyg 更容易。
您可以通过运行来安装它
$ wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
$ install apt-cyg /usr/local/bin
然后运行
$ apt-cyg install python3-scipy
仅此而已。
如果根据我的更新,这不起作用,您也可以从源代码构建 scipy,但这需要很长时间并且需要安装许多构建依赖项。在我的头顶上,我认为至少你应该尝试:
$ apt-cyg install python3-cython python3-numpy python3-devel openblas-devel gcc gfortran
然后尝试
$ python3 -m pip install scipy
如果这仍然不起作用,请告诉我,我会添加进一步的更新。我已经在Cygwin上构建了很多次scipy,所以我知道它有效,但我正在写这个。
目前 PyPI 不支持为 Cygwin 上传二进制轮子。我一直想改变这一点,但我还没有机会。但与此同时,许多流行的科学Python包已经在Cygwin包存储库中有了包。