相信朋友們都看過這個零基礎學習Python的開篇了
文章為了讓新朋友快速寫Python代碼,直接推薦了綠色內置版安裝,很多時候比如在正式服務器環境,我們是使用rpm或者指定版本原始碼編譯打包基礎服務器鏡像的,
從簡到難,先從安裝包來安裝python,后面在Linux安裝并使用,
開發者電腦安裝
Window電腦,這個比較簡單,我們進入Python官網,找到Installer下載安裝,
如下圖,一般都是64位的選擇圈中的64-bit下載,

這個是exe檔案,所以就一步一步直接安裝即可,
或者直接這個鏈接下載:https://www.python.org/ftp/python/3.9.6/python-3.9.6-amd64.exe
本機安裝,我們的目標是使用Python開發,一步一步直接設定默認的就最好!(也就是環境變數也不用去定制了)
MacOS如何安裝Python
下載pkg檔案,一步一步安裝,同上,基本不用自己配置環境變數!
https://www.python.org/ftp/python/3.9.6/python-3.9.6-macos11.pkg
最難的來了,
原始碼安裝Python?
這種安裝就比較多步驟了,tar包編譯安裝,然后配置環境,
這種程序多,能夠學到很多,
原始碼安裝python可能遇到的多個問題
-
python版本過新,導致安裝程序缺少一些c代碼的方法或者.h檔案缺失
-
安裝程序缺少一些python開發相關的庫,比如想zlib或者ffi庫等
ZipImportError: cannot’ decompress data; zilib not available

比如下面的代碼致命錯誤ffi.h(當然下面的錯誤是因為libffi這庫沒有預裝了)

準確點說,主要是下面兩個問題:
- 代碼要求高版本的gcc,當前系統的過于陳舊!
- python開發依賴缺失了,當前系統沒有安裝!
但是問題不大,迎難而上,還好不是迎男而上,
升級gcc,需要root
切換為root用戶安裝
yum install -y centos-release-scl
yum install -y devtoolset-7-gcc*
scl enable devtoolset-7 bash
gcc -v
#學委的代碼分享
安裝缺失的開發依賴庫
切換為root用戶安裝
#這里距離
yum install -y libffi-devel.x86_64
yum -y install zlib*
升級完gcc和依賴后可以安裝了
直接報存下面的代碼為install.sh,然后運行安裝吧,
#從這里下載安裝
curl -k https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz -o leixuewei-python.tar.xz
#解壓 tarball
#xz -dk leixuewei-python.tar.xz
tar xf leixuewei-python.tar.xz
#配置安裝
cd Python-3.9.6
./configure --prefix=/opt/python3.9.6
make
sudo make install
安裝后使用
打開任意終端/CMD輸入:python

安裝順利,能夠查到版本號碼,
補充設定
上面原始碼編譯后二進制檔案為python3,我們希望在任意目錄輸入python都能呼叫python3,
可以切換到root用戶,通過下面的命令設定:
cd /usr/bin
unlink python
ln -s /opt/python3.9.6/bin/python3 python
ln -s /opt/python3.9.6/bin/pip3 pip
執行后,我們打開一個終端輸入python就用上python3了,

再回來說環境變數
| 重點變數 | 作用 | Linux示例設定 |
|---|---|---|
| PYTHONPATH | Python模塊的搜索路徑 | export PYTHONPATH=/leixuewei/packages |
PYTHONPATH是Python中一個重要的環境變數,用于在匯入模塊的時候搜索路徑,
PYTHONHOME為PYTHON的安裝路徑,默認設定為python的安裝路徑,
題外話
不過我們在服務器端,主要是以Linux服務器安裝Python為主,
同時在大公司,服務器成百上千不在話下,語言和軟體都是有統籌管理的,就算是自動化安裝也是把這個手動程序撰寫為自動化腳本或者配置比如Ansible,
或者用Docker鏡像,但這些方式本質也是走服務器安裝的方式,只是被打包到鏡像了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/295652.html
標籤:python
