linux普通用户配置自己的python环境
最近入职之后,带我的导师给我安排了一个活,要搭建一个ucloud2bigquery的数据pipline,理所当然的要用到服务器,于是乎,踩了好多好多坑,害。 公司给的服务器是linux系统,centos版本。我实现这个pipline打算用python3,但是root的python环境是2.x,因此需要自己装环境。强调:如果不是非得用crontab跑脚本,只是开发的话,不建议自己去配,你都不知
最近入职之后,带我的导师给我安排了一个活,要搭建一个ucloud2bigquery的数据pipline,理所当然的要用到服务器,于是乎,踩了好多好多坑,害。
公司给的服务器是linux系统,centos版本。我实现这个pipline打算用python3,但是root的python环境是2.x,因此需要自己装环境。
强调:如果不是特殊原因,不建议自己去配,你都不知道会遇到什么问题,只要装一个anaconda就一切都解决了
1. linux安装anaconda
这里只提供一个命令合集,具体过程参照下文链接,或者自行搜索,网上一大堆
#下载文件(忽略证书),具体版本自行去官网选择,右键复制链接地址即可
wget --no-check-certificate https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh
#下载的是一个.bash文件,直接运行即可,如果现实无运行权限
chmod +x Anaconda3-2021.11-Linux-x86_64.sh
#运行安装
bash Anaconda3-2021.11-Linux-x86_64.sh
#如果运行conda显示无此命令
#配置环境
cd ~
vi .bashrc
#将下面语句自行修改路径加入
PATH="your path /anaconda3/bin:$PATH"
#vi模式下,i表示编辑,按下ESC,输入:wq 表示保存并退出
#环境即可生效
source .bashrc
#conda创建环境之后,运行conda activate ev1可能显示无此命令,运行下列命令激活即可
source activate
conda activate ev1
2.配置python3
终于还是得面对这个话题。先大致说一下流程,python3的安装很简单,就是wget下载安装包,通过configure设置路径,最后make和make install完成安装。但是问题在于,由于root环境是python2.x,所以python3依赖的zlib、openSSL、libffi可能都没有,这些装起来就稍微有点麻烦,这三个的作用分别是,openSSL是安装pip下载Python库所必须的配置,zlib和libffi是python编译安装所需的依赖库。
也就是说满足这三个库,配置的python才能正常安装pip,正常运行。所以,下面的过程分为两步(三步),分别是依赖环境安装、Python3编译安装(python运行环境配置,perl、readline等)
安装OpenSSL
linux所有的安装流程都差不多,上述已经介绍,下面只提供命令,建议在usr用户下建一个download的目录存储下载文件,software安装依赖库,免得太乱。
-
下载网站:OpenSSL下载官网
- 以openssl-3.0.2为例
#新增download文件夹
cd ~
mkdir download
mkdir software
cd download
#下载安装
wget --no-check-certificate https://www.openssl.org/source/openssl-3.0.2.tar.gz
tar -xzf openssl-3.0.2.tar.gz
cd openssl-3.0.2
./config --prefix=/home/用户名/software/ssl
make && make insatll
安装zlib
-
下载网站:zlib下载官网
- 以zlib-1.2.11为例
#回到download目录下
cd ..
#下载安装
wget --no-check-certificate https://www.zlib.net/zlib-1.2.11.tar.gz
tar -xzf zlib-1.2.11
cd zlib-1.2.11
./config --prefix=/home/用户名/software/zlib
make && make insatll
安装libffi
-
下载网站:libffi下载-github
- 以libffi-3.4.2为例
#回到download目录下
cd ..
#下载安装
wget --no-check-certificate https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz
tar -xzf libffi-3.4.2
cd libffi-3.4.2
./config --prefix=/home/用户名/software/libffi
make && make insatll
这个要单独写入系统遍历
cd ~
vi .bashrc
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/用户名/software/libffi/lib/pkgconfig
source .bashrc
配置依赖库环境
最最最关键的来了,你配置的Python3一定要找得到他们才能依赖到他们,所以在正式安装python3之前,一定要配置好环境变量。
cd ~
vi .bashrc
#找个空地复制进去
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/用户名/ssl/lib:/home/用户名/zlib/lib:/home/用户名/libffi/lib
source .bashrc
安装python3
即便到了这步,我们也不能直接进行安装编译,因为python3的setup脚本里面默认是不用zlib、libffi以及openSSl编译的,因此需要修改Modules目录下的Setup文件,取消掉其中对SSL和zlib的模块注释,并修改相应的路径。
-
下载网站:python3下载官网
- 以Python-3.8.12为例
#回到download目录下
cd download
#下载安装
wget --no-check-certificate https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
tar -xzf Python-3.8.12
cd Python-3.8.12
cd Modules
vi Setup
#完成编辑 (:/ssl 可以进行查找,相应的命令自行去网上搜索,很多)
编辑后大致如下:
#ssl
SSL=/home/用户名/ssl
_ssl _ssl.c -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl -L$(SSL)/lib -lssl -lcrypto
#zlib
zlib zlibmodule.c -I/home/用户名/zlib/include -L/home/用户名/zlib/lib -lz
- 完成编辑后开始遍历安装python3
#编译安装
cd ..
LDFLAGS=`pkg-config --libs-only-L libffi` ./configure --prefix=/home/用户名/software/py38 --with-openssl=/home/用户名/ssl --enable-optimizations
make && make install
#添加环境变量,这里为了防止和root的python冲突,可以用alias重新命名
cd ~
vi .bashrc
#指向运行脚本
alias python3=/home/用户名/software/py38/bin/python3
#也可以直接设置为path
PATH=/home/用户名/software/py38/bin:$PATH
source .bashrc
#安装pip
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py --user
cd ~
alias pip3=/home/用户名/software/py38/bin/pip3
#二选一
PATH=/home/用户名/software/py38/bin:$PATH
#这样食用pip安装的库只会安装到python3相关目录下
到这里基本就大功告成了,反正我是安装成功了,但是个人有个人的问题,有的问题我可能也没遇到过,只能自求多福了。下面的安装不是必须的,只是为了编译环境方便点,比如进入python编程环境,你可能会发现你的回退键(删除键)变成了^H,一脸懵逼,但是你只要按住ctrl再按回退键就可以正常使用了
,这是一种短暂的解决方式,下面会介绍一种永久性的解决方式,大家自行食用。
readline安装
出现这种情况是因为没有安装readline模块,所以还是老规矩安装这个就好了,自行选择对应linux系统对应版本。
-
下载网站:包的官网,缺少找啥
- 后续安装可能会提示缺少perl或者sutuptools模块,一样的安装步骤,因此不再赘述。有兴趣就尝试,如果不是必须,建议放弃。世上无难事,只要肯放弃。
#回到download目录下
cd ..
#下载安装
wget no-check-certificate https://pypi.python.org/packages/source/r/readline/readline-6.2.4.1.tar.gz
tar -zxvf readline-6.2.4.1.tar.gz
cd readline-6.2.4.1
python setup.py install
-
参考链接:python安装readline模块
更多推荐
所有评论(0)