pyseer是进行GWAS的常用工具,然而pyseer不支持windows系统

我尝试过使用python3源码包的pip命令安装pyseer,但都没有成功,只好找源码包下载安装(这就要自己装依赖)。

但是pyseer的相关依赖使用源码包下载的python3只带的pip安装十分费劲,官方教程提供的依赖模块版本,在我的虚拟机中使用pip下载,不是安装失败,就是python3导入报错。

安装miniconda,使用conda建立虚拟环境来安装pyseer,同时会自动安装麻烦的依赖。

安装miniconda的教程: Miniconda软件安装教程(Linux)

要在命令行里让conda命令生效,需要在家目录下的.bashrc,添加上conda的bin文件夹到环境变量:

根据这个教程安装miniconda,速度很快。

miniconda对虚拟环境的管理

#建立虚拟环境:
#在目录/usr/local/miniconda3/envs里建立虚拟环境virtual,指定python版本3.6
conda create -n virtual python=3.6
#查看当前的环境:
conda env list
#删除虚拟环境:
conda remove -n virtual --all

例子 在指定的文件建立、删除虚拟环境:

[f@FF ~]$ conda create --prefix /home/f/virtual python=3.5

删除就用rm删除吧

[f@FF ~]$ conda env list
# conda environments:
                         /home/f/virtual
base                  *  /usr/local/miniconda3
virtual1                 /usr/local/miniconda3/envs/virtual1
[f@FF ~]$ rm -Rf /home/f/virtual
[f@FF ~]$ conda env list
# conda environments:
base                  *  /usr/local/miniconda3
virtual1                 /usr/local/miniconda3/envs/virtual1
[f@FF ~]$ 

虚拟环境的激活和失活:

#进入虚拟环境virtual1:
[f@FF ~]$ source activate virtual1
(virtual1) [f@FF ~]$ 
#退出虚拟环境:
(virtual1) [f@FF ~]$ conda deactivate
[f@FF ~]$ 

安装pyseer的相关报错和解决:

报错1:ModuleNotFoundError: No module named 'setuptools._distutils'

Collecting DendroPy
  Using cached DendroPy-4.5.2.tar.gz (15.2 MB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [1 lines of output]
      ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.
      [end of output]
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details

报错解决:更新pip再更新setuptools

#更新pip:
python -m pip install --upgrade pip
#更新setuptools:
pip install -U setuptools --target=<your virtual environment site-packages path>

更新setuptools为64版本后,查看调用的setuptools的版本还是36版本:

#查看命令:
pip show setuptools

原因就是更新时没有权限将旧包删掉,虽说安装上了新的包,但是新包没被调用,需要用--target选项指定setuptools的安装位置

最后查看pyseer模块版本,成功安装!

(virtual1) [root@FF f]# python -m pyseer --version
pyseer 1.1.0
(virtual1) [root@FF f]# 
使用subprocess模块的目的是用于替换os.system等一些旧的模块和方法。 运行python的时候,我们都是在创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序。 subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)的工具,从而在进程间使用文本
安装 三方库时报错 ·Can not execute since setuptools is not available in the build environment·尝试 更新 pip setuptools 问题解决 python -m pip install --upgrade pip python -m pip install --upgrade setuptools
查资料发现windows或者mac就可以用上面的pip install -U wxPython linux需要用另一种pip方法:pip install -U -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-16.04 wxPython !!!如果还是报错的话,就用下面的方法: 1、首先需要查询当前ubuntu版本: 2、到wxpython官网下载对应ubuntu版本和python args,shell的命令,是字符串,可以自己定义; stdout,标准输出,linux标准的输出是往屏幕上输出;subprocess.PIPE,告诉subprocess在执行命令的时候,将所有的标准的输出保存起来。stderr,标准错误输出; "check=True",检查前面的args参数命令执行是否成功,成功不报错,不成就python程序就报错,python程序就停止。这个check默认为Fals. 2. 然后输入以下命令以安装Java:sudo apt-get install default-jre 3. 您还可以安装Java开发工具包(JDK):sudo apt-get install default-jdk 4. 安装完成后,您可以通过输入以下命令来检查Java版本:java -version 希望这可以帮助您安装Java。