为什么安装 pysam python 包失败?

Why does installing pysam python package fail?

我是 python 和 运行 命令的新手:

pip install pysam

这导致:

Collecting pysam
  Using cached https://files.pythonhosted.org/packages/25/7e/098753acbdac54ace0c6dc1f8a74b54c8028ab73fb027f6a4215487d1fea/pysam-0.15.4.tar.gz
    ERROR: Command errored out with exit status 1:
     command: 'c:\path\programs\python\python38\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\path\Local\Temp\pip-install-qzuue1yz\pysam\setup.py'"'"'; __file__='"'"'C:\path\Temp\pip-install-qzuue1yz\pysam\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
    Complete output (23 lines):
    # pysam: cython is available - using cythonize if necessary
    # pysam: htslib mode is shared
    # pysam: HTSLIB_CONFIGURE_OPTIONS=None
    '.' is not recognized as an internal or external command,
    operable program or batch file.
    '.' is not recognized as an internal or external command,
    operable program or batch file.
      File "<string>", line 1, in <module>
      File "C:\path\Local\Temp\pip-install-qzuue1yz\pysam\setup.py", line 241, in <module>
        htslib_make_options = run_make_print_config()
      File "C:\path\Local\Temp\pip-install-qzuue1yz\pysam\setup.py", line 68, in run_make_print_config
        stdout = subprocess.check_output(["make", "-s", "print-config"])
      File "c:\path\programs\python\python38\lib\subprocess.py", line 411, in check_output
        return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
      File "c:\path\programs\python\python38\lib\subprocess.py", line 489, in run
      File "c:\path\programs\python\python38\lib\subprocess.py", line 854, in __init__
        self._execute_child(args, executable, preexec_fn, close_fds,
      File "c:\path\programs\python\python38\lib\subprocess.py", line 1307, in _execute_child
        hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
    FileNotFoundError: [WinError 2] The system cannot find the file specified
    # pysam: htslib configure options: None
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

这里有什么问题?

最初我得到一个关于未安装 cython 的错误,所以我 运行 pip install cython 并且能够 运行 没有问题。

如果你有 anaconda,试试这个:

conda install -c bioconda pysam

有很多二元轮at PyPI but only for Linux and MacOS X. The package at bioconda也只针对Linux和OSX编译。

当您尝试在 Windows 安装 pysam 时 pip 下载源代码分发 pysam-0.15.4.tar.gz,解压它并 运行s setup.y

pysam 的 setup.py configures library htslib by running script htslib/configure。这是一个 shell 脚本,如果没有 Unix 仿真层,它不能在 Windows 中 运行。因此错误。

底线:像许多与遗传学相关的软件一样(我对用 Python 和 Java 编写的软件有一些经验) pysam 似乎只能在 Unix 上使用,最好是 Linux 或者 OS X.