一、非root用户安装python模块
1.python安装的默认目录是$python/lib/python版本号/site-packages,比如本机中python 路径是/software/python3/Python-v3.7.0/bin/python3,那默认模块安装路径是/software/python3/Python-v3.7.0/lib/python3.7/site-packages,重点是设置安装目录。
2.往往没有root权限,我们需要将模块安装到指定目录,首先创建一个可读写目录,比如:
mkdir ~/python3_package
cd python3_package
mkdir bin
mkdir -p lib/python3.7/site-packages
3.下载模块安装包,一般官网下载安装包,一般是tar.gz 格式,官网地址,放到哪里都没关系,这里,我创建了 pkg 目录,存放所有下载的安装包。比如安装 pyfasta 模块。
mkdir -p pkg && cd pkg
wget https://files.pythonhosted.org/packages/be/3f/794fbcdaaa2113f0a1d16a962463896c1a6bdab77bd63f33a8f16aae6cdc/pyfasta-0.5.2.tar.gz
tar -zxvf pyfasta-0.5.2.tar.gz
cd pyfasta-0.5.2 #进入解压目录
python3 setup.py install --prefix=~/python3_package #一定注意这里的目录,设置为之前创建的目录
4.设置环境变量,将之前创建的目录加入到环境变量当中
vi ~/.bash_profile #打开文件,添加以下内容
export PATH=$HOME/.local/bin:$HOME/bin:~/python3_package/bin:$PATH
export PYTHONPATH=~/python3_package/lib/python3.7/site-packages:$PYTHONPATH
source ~/.bash_profile
5.卸载模块
cd ~/python3_package
cd bin #删除生成的对应文件
vi lib/python3.7/site-packages/easy-install.pth #修改lib下 的这个文件去掉想要卸载的模块 .egg 那一行
6.批量安装模块
pip3 install -r requirements.txt #requirements.txt 列出需要安装的软件
cat requirements.txt
numpy>=1.14.0
scipy>=1.0.0
fastcluster
pandas>=0.22.0
matplotlib>=2.1.1
seaborn>=0.8.1
二、非root用户安装python3
1.下载软件包并解压
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
tar -zxvf Python-3.7.0.tgz
2.创建一个空目录,存放安装文件
mkdir ~/Python-v3.7.0
3.安装
cd Python-3.7.0
./configure --prefix="../Python-v3.7.0"
#会出现以下提示:
If you want a release build with all stable optimizations active (PGO, etc),
please run ./configure --enable-optimizations
#或许重新运行以下命令:
./configure --prefix="../Python-v3.7.0" --enable-optimizations
#然后
make && make install
4.可能出现的安装错误
1)编译make && make install 编译时出现错误
warning: Clock skew detected. Your build may be incomplete
原因:机器系统时间与文件时间不一致
解决:更新所有文件的时间后重新编译
find . -type f | xargs -n 5 touch make clean
make && make install
最终 是改了linux 的系统时间 才完成安装
2)缺少动态库时,添加路径到 LD_LIBRARY_PATH变量即可
#动态库查看
ldd ~/Python-v3.7.0/bin/python3
- 添加环境变量
export PATH=~/Python-v3.7.0/bin:$PATH
export LD_LIBRARY_PATH=~/lib/python3.7:$LD_LIBRARY_PATH
#export PYTHONPATH=~/Python-v3.7.0/lib/python3.7:$PYTHONPATH #可能不需要