亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux源碼安裝Python3.7出現的各種坑

系統 1947 0

前言

自己在Linux安裝過很多次Python,每次都會由于各種各樣的原因出現很多問題,很無奈

安裝流程

  • 去這里先看看有哪些可用版本可用下載
  • 下載
            
              sudo wget http://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

            
          
  • 解壓
            
              sudo tar -xzvf Python-3.7.0.tgz

            
          
  • 自定義安裝目錄
            
              sudo mkdir /usr/local/python3 

            
          
  • 編譯、安裝
            
              cd Python-3.7.0
sudo ./configure --prefix=/usr/local/python3
sudo make 
sudo make install

            
          
  • 預安裝所需要的庫
            
              sudo yum -y install zlib zlib-devel
sudo yum -y install bzip2 bzip2-devel
sudo yum -y install ncurses ncurses-devel
sudo yum -y install readline readline-devel
sudo yum -y install openssl openssl-devel
sudo yum -y install openssl-static
sudo yum -y install xz lzma xz-devel
sudo yum -y install sqlite sqlite-devel
sudo yum -y install gdbm gdbm-devel
sudo yum -y install tk tk-devel

            
          

這些包安裝好,后面出現的問題就比較少了
源碼安裝程序主要出現問題的就是make install這一步

出現的問題(如果上面預安裝的軟件都安裝了,下面好多問題就沒有了)

  • Python build finished, but the necessary bits to build these modules were _bz2 _curses _curses_panel _dbm _gdbm _hashlib _lzma _sqlite3 _ssl _tkinter _uuid readline zlib
    解決方法:
            
              sudo yum install _bz2  _curses  _curses_panel  _dbm    _gdbm  _hashlib _lzma  _sqlite3  _ssl  _tkinter  _uuid   readline zlib  

            
          

然后再sudo make install,一如既往的報錯

  • zipimport.ZipImportError: can’t decompress data; zlib not available
    我在上面明顯安裝了,但是還報沒找到,那就用老套路
            
              sudo yum install zlib* -y

            
          

此處有可能會報

            
              Error:  Multilib version problems found. This often means that the root
       cause is something else and multilib version checking is just
       pointing out that there is a problem.

            
          

解決方法:

            
              sudo yum install  -y zlib* --setopt=protected_multilib=false

            
          

然后再sudo make install,一如既往的報錯

  • ModuleNotFoundError: No module named ‘_ctypes’
    網上大部分人都是通過如下解決的:
            
              sudo yum install libffi-devel -y

            
          

但是我就不行,可能是yum源的問題,于是我又使用了慣用的招數

            
              sudo yum install libffi* -y

            
          

總算成功了

注意:每次yum完,無論失敗與否都要執行make install

編譯、安裝完成后,建立軟連接

            
              sudo ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
sudo ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

            
          

測試Python3.7

            
              [analysis@master01 ~]$ python3
Python 3.7.0 (default, May 14 2019, 16:35:35) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

[analysis@master01 ~]$ pip3 -V
pip 10.0.1 from /usr/local/python3/lib/python3.7/site-packages/pip (python 3.7)
[analysis@master01 ~]$ 

            
          

卸載

先找到所有的python3相關的文件

            
              whereis python3*

            
          

然后刪除

            
              #移除Python3
rm -rf /usr/local/python37
#移除Python3軟鏈接
rm -rf /usr/bin/python3

            
          

Require TLS/SSL

本來以為很開心的就可以玩耍了,誰知道,使用pip3 install pandas竟然報錯:

            
                 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting virtualenv
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
  Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/virtualenv/
  Could not fetch URL https://pypi.org/simple/virtualenv/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/virtualenv/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
  Could not find a version that satisfies the requirement virtualenv (from versions: )
No matching distribution found for virtualenv
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

            
          

原因

系統版本centos6.5,其中openssl的版本為OpenSSL 1.0.1e-fips 11 Feb 2013,而python3.7需要的openssl的版本為1.0.2或者1.1.x,需要對openssl進行升級,并重新編譯python3.7.0。yum 安裝的openssl 版本都比較低。

升級openssl

            
              # 1.下賊openssl
sudo wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
sudo tar -zxvf openssl-1.1.1a.tar.gz
cd openssl-1.1.1a
# 2.編譯安裝
sudo ./config --prefix=/usr/local/openssl no-zlib #不需要zlib
sudo make
sudo make install
# 3.備份原配置(如果報錯:沒有這個/usr/include/openssl文件,那么先執行第4部,然后再執行第3步)
sudo mv /usr/bin/openssl /usr/bin/openssl.bak
sudo mv /usr/include/openssl /usr/include/openssl.bak
# 4.新版配置
sudo ln -s /usr/local/openssl/include/openssl /usr/include/openssl
sudo ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# 5.修改系統配置
## 寫入openssl庫文件的搜索路徑(注意,需要修改/etc/ld.so.conf文件的權限,不然無法追加進去)
sudo echo "/usr/local/openssl/lib" >>  /etc/ld.so.conf
## 使修改后的/etc/ld.so.conf生效 
sudo ldconfig -v
# 6.查看openssl版本
openssl version

            
          

重新安裝python

            
              sudo ./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
sudo make 
sudo make install

            
          

安裝需要的庫

            
              sudo pip3 install pandas
sudo pip3 install numpy
sudo pip3 install matplotlib
sudo pip3 install scikit-learn

            
          

后記

由于環境配置不同,每個人遇到的問題都不同,只有針對下藥才能解決問題


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品国产一区二区三区久久 | 四虎精品久久久久影院 | 欧美激情日本一道免费视频 | 成人黄色网址 | 中文字幕在线日本 | 国产综合在线播放 | 激情综合欧美 | 日本一区二区三区四区 | 成人a网站 | 一区二区三区在线视频播放 | 欧美亚洲综合另类成人 | 日日噜噜夜夜狠狠tv视频免费 | 久久人人爽人人爽人人片av不 | 在线成人a毛片免费播放 | 国产福利视精品永久免费 | 国产精品一区二区综合 | www.夜夜操 | 亚洲最大在线观看 | 久久午夜激情 | 欧美日韩激情在线一区二区 | 免费在线观看黄色小视频 | 五月天中文在线 | 国产亚洲精品国看不卡 | 私人影院aaaaa毛片 | 久久综合亚洲一区二区三区 | 8090碰成年女人免费碰碰尤物 | 豆国产97在线 | 亚洲 | 国产成人亚洲影视在线 | 国产一级片子 | 欧美日韩亚洲国产一区二区三区 | 在线观看国产一区二三区 | 日本一区二区三区四区在线观看 | 国产成人教育视频在线观看 | 国产精品视频在线免费观看 | 亚洲免费毛片 | 99久久国产综合精品2020 | 亚洲精品亚洲人成在线 | 国产69精品久久久久999小说 | 日日狠狠 | 青青青青青国产费线在线观看 | 一区二区三区精品国产欧美 |