无法在命令提示符或 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/ 并搜索您要安装的任何新软件包,因为该网站实际上会告诉您软件包在哪个频道中。
【讨论】:
这不会解决问题。所有 Anacondasnakemake
构建都需要 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不是内部或外部命令解决方法