无法在命令提示符或 anaconda 提示符下安装 Snakemake

Posted

技术标签:

【中文标题】无法在命令提示符或 anaconda 提示符下安装 Snakemake【英文标题】:Unable to install Snakemake in either command prompt nor anaconda prompt 【发布时间】:2019-10-20 14:17:53 【问题描述】:

我正在尝试安装 Snakemake。

当我尝试使用 pip 时,我收到以下错误消息:

ERROR: Complete output from command 'C:\Python\Python37\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\ANGELA~1\\AppData\\Local\\Temp\\pip-install-1kbp7voq\\datrie\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\ANGELA~1\AppData\Local\Temp\pip-record-_eliva3i\install-record.txt' --single-version-externally-managed --compile:
ERROR: running install
running build
running build_clib
building 'libdatrie' library
creating build
creating build\temp.win-amd64-3.7
creating build\temp.win-amd64-3.7\libdatrie
creating build\temp.win-amd64-3.7\libdatrie\datrie
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Ilibdatrie "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\include" /Tclibdatrie\datrie\alpha-map.c /Fobuild\temp.win-amd64-3.7\libdatrie\datrie\alpha-map.obj
alpha-map.c
libdatrie\datrie\alpha-map.c(27): fatal error C1083: Cannot open include file: 'ctype.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.21.27702\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
----------------------------------------
ERROR: Command "'C:\Python\Python37\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\ANGELA~1\\AppData\\Local\\Temp\\pip-install-1kbp7voq\\datrie\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\ANGELA~1\AppData\Local\Temp\pip-record-_eliva3i\install-record.txt' --single-version-externally-managed --compile" failed with error code 1 in C:\Users\ANGELA~1\AppData\Local\Temp\pip-install-1kbp7voq\datrie\

我已经为 MS Visual Studio 2019 下载了 C++ 和 python 构建工具。我还升级了设置工具。

当我尝试使用 anaconda 提示符安装时,我得到了这个:

PackagesNotFoundError: The following packages are not available from current channels:

 > - snakemake -> pygraphviz

conda install pygraphviz 也会产生相同的消息,并且我已将 conda-forge 附加到频道中。

【问题讨论】:

据我所知,目前存在一个与 datrie 包相关的问题,该问题使得在 python 3.7 下可以使用 pip 卸载 snakemake:bitbucket.org/snakemake/snakemake/issues/934/… 【参考方案1】:

conda install -c bioconda snakemake

包在bioconda 频道中。最好拨打https://anaconda.org/ 并搜索您要安装的任何新软件包,因为该网站实际上会告诉您软件包在哪个频道中。

【讨论】:

这不会解决问题。所有 Anaconda snakemake 构建都需要 pygraphviz,这不适用于任何标准频道上的 win-64 平台。 很公平。我没有仔细阅读 pip 错误日志以意识到它是一个 Windows 系统。无论如何,我将在此处留下答案,因为 a) bioconda 是该软件包的正确渠道,并且 b) 在 anaconda.org 上搜索还将显示该软件包可用于的操作系统。【参考方案2】:

PyPI

pip 错误有一些相关问题(例如,Cannot open include file: 'ctype.h': No such file or directory),但我没有看到任何 VS2019 特定的解决方案。旧的解决方案似乎有各种原因,这对我来说听起来很乱。

康达

我仍然会尝试 Conda 路线。这里的问题是默认的 Snakemake 构建需要 pygraphviz,而您的任何渠道都无法在 win-64 平台上使用它。

没有 Graphviz

最简单的替代方法是选择snakemake-minimal 包,它没有pygraphviz 依赖项。 Snakemake 使用 Graphviz 的唯一目的是生成 DAG 图,根据我的经验,这实际上对任何事情都无用,但无论如何都是微不足道的管道。 The minimal version 还忽略了远程文件支持(例如,DropBox 接口)和精美的报告生成。所以,如果你只需要核心功能,那就运行

conda install snakemake-minimal

(我假设您已经拥有 Bioconda + Conda Forge 频道。)

图形化

如果您真的想要 Graphviz 绘图或其他附加功能,您可以尝试类似

conda activate
conda install graphviz pip
pip install pygraphviz
conda install snakemake

也就是说,确保在您的 Conda 环境中使用pip,并且只使用它来安装pygraphviz。但是,同时使用 PyPI 和 Conda can lead to an unstable env。

Anaconda Cloud 上有一些用户频道具有 win-64 构建 pygraphviz,但我不建议从随机用户频道采购,除非你信任他们。

【讨论】:

【参考方案3】:

根据this issue,目前python3.7下使用pip无法立即安装snakemake。无法自动安装依赖datrie

在问题讨论中,有一个建议的解决方法:首先从git安装datrie,然后snakemake

pip3 install git+https://github.com/pytries/datrie.git
pip3 install snakemake

【讨论】:

【参考方案4】:

见https://github.com/snakemake/snakemake/issues/246

不是snakemake 的错误,而是datrie 的一个已知问题。目前打开了一个PR 可以解决这个问题,但是在它被合并之前,下面的解决方案应该可以工作。

previous issue on bitbucket 已经为 python3.7 处理了这个问题。

解决方法

Python3.7

pip3 install git+https://github.com/pytries/datrie.git
pip3 install snakemake

Python3.8

pip3 install "git+https://github.com/ashwinvis/datrie.git@python3.8"
pip3 install snakemake

【讨论】:

【参考方案5】:

错误显示您尝试安装的软件包使用了 Microsoft VCC 编译器

 No such file or directory error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\bin\HostX86\x64\cl.exe' failed with exit status 2 

安装 Microsoft Visual Studio 2019 以解决此问题

【讨论】:

那是我安装的Visual Studio版本。 这不是解决方案。

以上是关于无法在命令提示符或 anaconda 提示符下安装 Snakemake的主要内容,如果未能解决你的问题,请参考以下文章

Anaconda安装Python,提示Python不是内部或外部命令解决方法

如何使批处理文件在 anaconda 提示符下运行

无法在 anaconda windows 中导入 opencv

在Mac终端下使用conda命令提示未找到命令conda

如何在cmd命令提示符下安装numpy

无法使用 Anaconda 提示安装 pip PyMySQL