最近入职之后,带我的导师给我安排了一个活,要搭建一个ucloud2bigquery的数据pipline,理所当然的要用到服务器,于是乎,踩了好多好多坑,害。
  公司给的服务器是linux系统,centos版本。我实现这个pipline打算用python3,但是root的python环境是2.x,因此需要自己装环境。

强调:如果不是非得用crontab跑脚本,只是开发的话,不建议自己去配,你都不知道会遇到什么问题,需要去装一个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
  • 建议参考网站:
    linux下Anaconda的安装
    linux中环境变量及环境变量配置文件详解

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模块

linux普通用户配置自己的python环境相关推荐

  1. 明明安装了模块,还是出现 错误 ImportError: No module named ‘pandas‘ 原因LINUX上安装了多个python环境,将脚本中python 改为python3问题解

    明明安装了模块,还是出现 错误 ImportError: No module named 'pandas'  原因LINUX上安装了多个python环境,将脚本中python 改为python3问题解 ...

  2. pycharm配置连接服务器+python环境设置

    [pycharm配置连接服务器+python环境设置] 简要介绍 1. configuration 2. Deployment 3. SSH Configuration 配置 4. Mapping 5 ...

  3. 在 PyCharm 2017.2.3 中设置 Anaconda 5.0.0 中配置的多Python环境

    Anaconda 相关文章请先阅读 安全的安装Anaconda3 5.0.0 Windows x86_64 http://blog.csdn.net/hu_zhenghui/article/detai ...

  4. Conda各平台安装配置和使用Python环境(保姆级教程)

    Conda是python程序运行环境的管理工具.Python是目前最流行的计算机语言,由于python是胶水语言,功能上的实现依赖第三方包.有的python脚本需要特定版本的依赖包运行,如果直接在电脑 ...

  5. Linux 下安装配置C/C++开发环境 Code::Blocks

    Linux 下安装配置C开发环境Code::Blocks 一.提前的话 要说C语言和Linux的关系大家应该都不会陌生,Linux系统内核就是用C语言开发的,所以所有的Linux系统下面 都会有C的编 ...

  6. python调用按键精灵插件_开发中IDE的选择?如何在VsCode上配置CC++,Java,Python环境...

    前言 工欲善其事必先利其器,这也是老生常谈的事情了.在做日常开发中,让我感受到一个顺手的开发工具的重要性.截至目前对于不同语言自己也使用过很多开发工具,有一些简单的编辑器例如:notepad++.Ed ...

  7. python38环境变量的配置_Windows下python环境变量配置

    默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. 1. 首先需要在系统中注册python环境变量:假设python的安装 ...

  8. Win11安装VScode详细教程、配置Anaconda与python环境

    1. Anaconda与VSCode的下载与安装 首先参考该教程进行 Anaconda与VSCode的基础安装:Anaconda + VSCode 最详细教程 注意: 1) 上方教程中下载32位.64 ...

  9. windows下移植别人配置好的python环境

    一般来说,我们在windows下配置python环境的时候可能会比较推荐用anaconda,那么有一个比较方便的anaconda环境移植方法,也就是说,如果我已经在windows上安装好了anacon ...

  10. linux为用户配置java环境变量

    一. 解压安装jdk  在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录,  执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回 ...

最新文章

  1. Caffe学习记录(十二) ICNet分割网络学习二
  2. nginx只允许域名访问,禁止ip访问
  3. Selenium VS QTP
  4. winform在表格中输入一个完整的时间字段_B端交互组件之表格篇
  5. 将自己的dcm数据制作成LUNA16数据集提供数据样式之代码整理
  6. oracle dblink使用
  7. Vue.js 判断对象属性是否存,不存在添加
  8. windows批量上传文件到linux,windows上传文件到linux云服务器上
  9. 常见端口号和对应协议
  10. USACO 1359. 城堡(并查集)
  11. 3D次时代来临 如何玩转红蓝立体游戏
  12. 舒淇放下黎明战胜抑郁 自称没责任感且不会结婚q1h
  13. mysql详解(全)
  14. matlab模糊控制图怎么导出_matlab模糊控制工具箱的使用
  15. VSCode实现STM32开发
  16. win7打开任务管理器的快捷键
  17. 【jvm】jvm 参数设置查看与设置
  18. Centos ping命令 网络不可达
  19. 臣与匈奴交战多年,还从未见到过不战而屈人之兵的好事。
  20. php获取laydate,解决laydate时间日期插件定位溢出

热门文章

  1. 计算机考研英语一和英语二的区别,2018考研英语一与英语二翻译有什么区别?怎么提高?...
  2. 安卓虚拟键盘_微软双屏Surface Duo上的安卓应用体验:可瞬间变身笔记本电脑
  3. ubuntu自定义安装里怎么选_安装地暖时,地板要怎么选?
  4. vue中的watch监听
  5. jdbc mysql innodb 死锁 deadlock_Mysql InnoDB 数据更新/删除导致锁表
  6. android 时间差格式化,计算2天之间的时间差android
  7. gitee怎么仓库间传文件_薄书的Gitee 码云使用教程学习纪录 - 薄书
  8. stringbuffer java API_StringBuffer类
  9. Java进阶:Spring
  10. Node.js:package.json中的dependencies和devDependencies区别