程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

部署centos8及安裝python2.7(dolphinscheduler1.2.1執行datax報python2.7不存在)

編輯:Python

部署centos8及安裝python2.7

  • 背景
  • 安裝centos8.0.1905
    • 下載地址
    • 通過VirtualBox進行安裝
      • 配置靜態IP
      • 配置xshell連接工具
  • 安裝python2.7
    • 測試是否通互聯網
    • 驗證環境是否和生產環境一致
    • 安裝python2.7
      • 下載python2.7
      • 安裝python2.7
        • 報錯
          • no acceptable C compiler found in $PATH
          • 緩存失敗
          • 緩存失敗,忽略這個 repo。元數據緩存已建立。
          • 再次驗證
      • 安裝依賴
          • 未找到匹配的參數: gcc
      • 重新配置python2.7
        • 配置
        • 編譯
          • 找不到make命令(太難了)
          • make失敗
            • 最後的掙扎
  • 最終結果

背景

通過海豚調度執行datax任務的時候,報錯python2.7命令不存在。
原因是代碼指定的版本是2.7,而centos8自帶的是python3 版本。
解決方案有兩種:
一:替換成python3
需要修改替換datax/bin下面的python文件,同事說比較簡單,修改下datax.py中print語法就行了,加下括號,另外的py文件
用不到。
二:安裝python2.7
嘗試安裝了下,本來也很簡單,但是一直報錯,所以本文也是仿照生產環境安裝centos8虛擬機,復現該問題,並嘗試解決。

報錯

操作系統及python版本
輸入python報命令不存在,/usr/bin下面沒有python軟鏈接,只有python3和python3.6鏈接

1.2.1代碼

安裝centos8.0.1905

下載地址

8.0.1905 64位
很明顯下載最大的iso文件

通過VirtualBox進行安裝

新建機器

默認在C盤,建議放其它盤,我這邊C盤比較大,就放C盤,到時候安裝好,導出一份做備份也一樣的。

後續可能會在上面部署dolphinscheduler2.0,所以內存就盡可能搞大點了,可以就設1G,後面也是可以再修改的。

一直下一步,大小建議設置大於10G
iso文件比較大,有6G

設置-鏡像文件


網絡選擇橋接模式

啟動創建用戶
點擊啟動,過個幾分鐘來到設置頁面,按照提示一步步配置即可

請問在哪點擊確認

關閉重新進去試試

關閉後,結果又重新來了一遍,不過這次顯示正常

重啟後又繼續安裝,沒完沒了…
後面直接強制退出了,移除光驅,再次啟動,總算結束了死循環


然後彈出許可認證,點擊,安裝提示,選擇光驅,完成配置

登錄進來
看著圖形界面好陌生…

配置靜態IP

Ctrl+Alt+F3切換到命令行頁面(Ctrl+Alt+F1切回圖形界面)

virbr0網卡,是因為安裝系統的時候附帶了libvirt服務,自動生成的,它有一個固定的默認IP 地址192.168.122.1,保險起見,最後刪掉libvirt服務,防止IP沖突。
刪除命令

yum remove libvirt-*

移除libvirt後,配置靜態IP

BOOTPROTO=static
ONBOOT=yes
PREFIX=24
IPADDR=192.168.1.66
GATEWAY=192.168.1.1
NETMASK=255.255.255.0
DNS1=114.114.114.114

重啟

驗證

配置xshell連接工具

安裝python2.7

測試是否通互聯網

方式一

curl https://www.baidu.com/


方式二

ping www.baidu.com


網絡是通的,可惜用不了,因為生產環境不通互聯網的…現在強迫症愈發嚴重了!!!!!

驗證環境是否和生產環境一致

x86_64
[[email protected] ~]# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.66 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::cf9b:a0e3:955b:4cff prefixlen 64 scopeid 0x20<link>
ether 08:00:27:ae:4d:ad txqueuelen 1000 (Ethernet)
RX packets 483 bytes 60582 (59.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 278 bytes 28454 (27.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[[email protected] ~]#
[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
[[email protected] ~]# uname -m
x86_64
[[email protected] ~]# python
bash: python: 未找到命令...
[[email protected] ~]# python3
Python 3.6.8 (default, May 21 2019, 23:51:36)
[GCC 8.2.1 20180905 (Red Hat 8.2.1-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> quit()
[[email protected] ~]#

安裝python2.7

下載python2.7

python2.7.6

太慢了…

上傳到服務器

安裝python2.7

解壓-配置-編譯

[[email protected] ~]# #創建編譯目錄
[[email protected] ~]# mkdir -p /usr/local/python2.7
[[email protected] ~]# #解壓安裝包
[[email protected] ~]# tar xf /tmp/Python-2.7.6.tgz
[[email protected] ~]# #進入解壓目錄,配置,指定編譯目錄
[[email protected] ~]# cd Python-2.7.6/
[[email protected] Python-2.7.6]# ./configure --prefix=/usr/local/python2.7


結果報錯了,生產環境可沒報錯,生產環境安裝很順利,就是執行命令時候報錯

報錯

no acceptable C compiler found in $PATH
[[email protected] Python-2.7.6]# ./configure --prefix=/usr/local/python2.7
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for --enable-universalsdk... no
checking for --with-universal-archs... 32-bit
checking MACHDEP... linux2
checking EXTRAPLATDIR...
checking for --without-gcc... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/root/Python-2.7.6':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
[[email protected] Python-2.7.6]# less config.log
[[email protected] Python-2.7.6]#

解決辦法,安裝gcc

yum -y install gcc
緩存失敗


解決辦法
備份,然後將地址放開並且修改為阿裡雲地址,三個文件都要改

[[email protected] Python-2.7.6]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo.bak
[[email protected] yum.repos.d]# cp CentOS-AppStream.repo CentOS-AppStream.repo.bak
[[email protected] yum.repos.d]# cp CentOS-Extras.repo CentOS-Extras.repo.bak
[[email protected] yum.repos.d]# vi CentOS-Base.repo
[[email protected] yum.repos.d]# vi CentOS-AppStream.repo
[[email protected] yum.repos.d]# vi CentOS-Extras.repo

例:

name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

Base

APP

Extras

緩存失敗,忽略這個 repo。元數據緩存已建立。


原因都是地址不對,首先確認地址正確,然後替換重試

https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/


替換地址

[[email protected] yum.repos.d]# grep aliyun CentOS-*
CentOS-AppStream.repo:baseurl=https://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/
CentOS-Base.repo:baseurl=https://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/
CentOS-Extras.repo:baseurl=https://mirrors.aliyun.com/centos/8-stream/extras/x86_64/os/

再次驗證
[[email protected] yum.repos.d]# #清除緩存
[[email protected] yum.repos.d]# yum clean all
0 文件已刪除
[[email protected] yum.repos.d]# #建立緩存
[[email protected] yum.repos.d]# yum makecache

安裝依賴

環境就像樹葉,根本不存在相同的環境,連網搞 都頭大…
安裝成功

yum install -y openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel
未找到匹配的參數: gcc


沒找到epel資源,指定IP即可

yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm

再次安裝gcc

yum install -y gcc

重新配置python2.7

配置

[[email protected] yum.repos.d]# cd
[[email protected] ~]# cd Python-2.7.6/
[[email protected] Python-2.7.6]#
[[email protected] Python-2.7.6]#
[[email protected] Python-2.7.6]#
[[email protected] Python-2.7.6]# ./configure --prefix=/usr/local/python2.7

編譯

[[email protected] Python-2.7.6]# make && make install
找不到make命令(太難了)


直接yum install -y make安裝成功,總算順利了一下!!!!

make失敗
./python -E -S -m sysconfig --generate-posix-vars
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
make: *** [Makefile:468: pybuilddir.txt] 段錯誤 (core dumped)

查看日志,懷疑還是依賴安裝不全

安裝依賴g++ (c++),還是make失敗

yum install -y gcc-c++

最後的掙扎

凌晨兩點了,太傷了,下載2.7最新版本試一下,行不行都這最後一下了

解壓、配置

配置

蒼天有眼,編譯結束,只不過貌似…
看樣子要到400,好想終止,但是我不敢

復制查看日志結果,還好是測試失敗

終於可以安裝了

最終結果

配置選擇了./configure --enable-optimizations所以沒有安裝到指定目錄,應該在後面把--prefix=/usr/local/python2.7拼接上去的,--enable-optimizations參數的作用就是不用自己再去建立軟連接了

mkdir -p /usr/local/python2.7
/configure --enable-optimizations --prefix=/usr/local/python2.7

如果指定了安裝目錄,則需要配置環境變量,/etc/profile是針對所有用戶的,單獨用戶配置在.bash_profile中

export PYTHON_HOME=/usr/local/python2.7
export PATH=$PYTHON_HOME/bin:$PATH

python3也未受影響

太難了,一個是找鏡像,花了很長時間,然後就是python make花了太長時間,最終解決辦法是下載最新的2.7版本,呵呵了!


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved