程序编译

编译程序 五:用户自己的python编译-我的地盘我做主

2019-12-10 23:00:16 admin 522

为什么要自己编译python:

首先、我们尽量不用系统的python,python的库很多很大,各个专业的装下来(我们这有几十个专业的用户),能上百个g把系统弄的很臃肿。而且系统的版本都很老很老。

bash-4.2$ which python

/usr/bin/python

bash-4.2$ python

Python 2.7.5 (default, Apr  9 2019, 14:30:50) 

[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2

其次、用户有对不同版本的库的需求,比如numpy:

[test_pkuhpc@login12 soft]$ pip install numpy==
ERROR: Could not find a version that satisfies the requirement numpy== (from versions: 1.3.0, 1.4.1, 1.5.0, 1.5.1, 1.6.0, 1.6.1, 1.6.2, 1.7.0, 1.7.1, 1.7.2, 1.8.0, 1.8.1, 1.8.2, 1.9.0, 1.9.1, 1.9.2, 1.9.3, 1.10.0, 1.10.0.post2, 1.10.1, 1.10.2, 1.10.3, 1.10.4, 1.11.0b3, 1.11.0rc1, 1.11.0rc2, 1.11.0, 1.11.1rc1, 1.11.1, 1.11.2rc1, 1.11.2, 1.11.3, 1.12.0b1, 1.12.0rc1, 1.12.0rc2, 1.12.0, 1.12.1rc1, 1.12.1, 1.13.0rc1, 1.13.0rc2, 1.13.0, 1.13.1, 1.13.3, 1.14.0rc1, 1.14.0, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.14.5, 1.14.6, 1.15.0rc1, 1.15.0rc2, 1.15.0, 1.15.1, 1.15.2, 1.15.3, 1.15.4, 1.16.0rc1, 1.16.0rc2, 1.16.0, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5)

有几十个版本,不同版本,有些指令都已经弃用了,但是有些用户还得使用,但是一个版本的python一般不让装多个版本的numpy

再次,yum等会用到系统的python,如果操作不当,yum就不能用。

最后你的师弟师妹们,有可能会误操作,弄坏python,这里我们使用virtualenv做容器

那么在北京大学北极星高性能计算平台用户,怎么解决呢,直接安装下,我们以这个版本为例:

1、下载:

[test_pkuhpc@login12 soft] wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

2、解压:

[test_pkuhpc@login12 soft] tar -xvf  Python-3.8.0.tgz

3、创建软件放置路径:

[test_pkuhpc@login12 soft] mkdir python-3.8.0

4、进入解压后的源文件夹

cd Python-3.8.0

5、配置系统和环境

[test_pkuhpc@login12 soft] ./configure --prefix=/lustre4/test_pkuhpc/soft/python-3.8.0/ --enable-optimizations
6、编译和安装,其中j10 表示用10个核去编译,&& 表示如果成功就执行安装:

[test_pkuhpc@login12 soft] make -j10 && make install

7、python3 以上版本不需要单独安装pip--跳过,python2版本需要:

[test_pkuhpc@login12 soft] curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

[test_pkuhpc@login12 soft] /installpath/bin/python get-pip.py #务必是所安装python的路径,不能用系统,否则又装到系统里去了,估计是装不上。

8、建立pip链接文件(python2版本不需要)

[test_pkuhpc@login12 soft] ln -s /lustre4/test_pkuhpc/soft/python-3.8.0/bin/pip3 /lustre4/test_pkuhpc/soft/python-3.8.0/bin/pip

9、安装virtualenv容器

[test_pkuhpc@login12 soft] /lustre4/test_pkuhpc/soft/python-3.8.0/bin/pip install virtualenv

10、配置virtualenv

先创建路径:

[test_pkuhpc@login12 soft] mkdir /lustre4/test_pkuhpc/soft/python-3.8.0/virtualenv

再配置下容器环境

[test_pkuhpc@login12 soft] /lustre4/stest_pkuhpc/soft/python-3.8.0/bin/virtualenv --distribute /lustre4/test_pkuhpc/soft/python-3.8.0/virtualenv

11、创建source文件如下

[test_pkuhpc@login12 Python-3.8.0]$ cat /lustre4/test_pkuhpc/soft/source/python-3.8.0.sh
#!/bin/bash
. /lustre4/test_pkuhpc/soft/python-3.8.0/virtualenv/bin/activate

12、测试:

先source下上面的source文件(用 . 也可以啊,一样) :

[test_pkuhpc@login12 Python-3.8.0] .  /lustre4/test_pkuhpc/soft/source/python-3.8.0.sh
查看python在哪里:

[test_pkuhpc@login12 Python-3.8.0]$ which python
/lustre4/swzhang_pkuhpc/soft/python-3.8.0/virtualenv/bin/python
确实是我们安装的版本。

13、库安装

[test_pkuhpc@login12 Python-3.8.0]$ pip install  pyensembl

图片关键词

耐心等待中 ........

苦苦等待.....

在继续等待。。。

图片关键词

惊喜不,一下给你安装了这么多软件包!

14、查看是否安装上

[test_pkuhpc@login12 Python-3.8.0]$ pip list |grep   pyensembl
pyensembl         1.8.4     
15、是否好用

(virtualenv) [test_pkuhpc@login12 Python-3.8.0]$  python -c 'import pyensembl'
(virtualenv) [test_pkuhpc@login12 Python-3.8.0]$ 呀!没有报错啊
bash: !没有报错啊: event not found



首页
资源&收费
集群
成果
问答