centos7安裝python3 以及tab補全功能

来源:https://www.cnblogs.com/zbj666/archive/2020/01/11/12179924.html
-Advertisement-
Play Games

centos7安裝python3 以及tab補全功能 1.安裝python3 1.1下載python源碼包 網址:https://www.python.org/downloads/release/python-366/ 下載地址:https://www.python.org/ftp/python/3 ...


 

centos7安裝python3 以及tab補全功能

 

1.安裝python3

1.1下載python源碼包

網址:https://www.python.org/downloads/release/python-366/

下載地址:https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

編譯安裝python3.6的步驟

1.下載python3源碼包
2.下載python3編譯的依賴包
3.解壓縮源碼包 
4.進入源碼包文件夾 
5.編譯且安裝
    1.進入源碼包目錄
    2.  ls查看源碼包內容
    3.  釋放編譯文件 Makefile  
    4.編譯
    5.編譯安裝,此步才會最終生成 /opt/python36/
    6.進入/opt目錄查看python36文件夾,我們要的python3都在這裡了
6.更改linux的path變數,添加python3
    一定要將python3的目錄放在第一位
    為了永久生效path設置,添加到/etc/profile全局環境變數配置文件中
    重載配置文件/etc/profile
7.安裝django模塊
8.查看當前解釋器的python模塊有哪些
編譯安裝python3.6的步驟

1.1.1安裝python前的庫環境,非常重要

yum install -y gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

1.2下載,解壓安裝源碼包

tar -xvf Python-3.6.6.tgz  
cd  Python-3.6.6  # 進入源碼包文件夾

1、configure

這一步一般用來生成 Makefile,為下一步的編譯做準備,你可以通過在 configure 後加上參數來對安裝進行控制,比如代碼:

./configure --prefix=/usr

上面的意思是將該軟體安裝在 /usr 下麵,執行文件就會安裝在 /usr/bin (而不是預設的 /usr/local/bin),資源文件就會安裝在 /usr/share(而不是預設的/usr/local/share)。

同時一些軟體的配置文件你可以通過指定 --sys-config= 參數進行設定。有一些軟體還可以加上 --with、--enable、--without、--disable 等等參數對編譯加以控制,你可以通過允許 ./configure --help 察看詳細的說明幫助。

2、make

這一步就是編譯,大多數的源代碼包都經過這一步進行編譯(當然有些perl或python編寫的軟體需要調用perl或python來進行編譯)。

如果 在 make 過程中出現 error ,你就要記下錯誤代碼(註意不僅僅是最後一行),然後你可以向開發者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系統少了一些依賴庫等,這些需要自己仔細研究錯誤代碼。

make 的作用是開始進行源代碼編譯,以及一些功能的提供,這些功能由他的 Makefile 設置文件提供相關的功能,比如 make install 一般表示進行安裝,make uninstall 是卸載,不加參數就是預設的進行源代碼編譯。

make 是 Linux 開發套件裡面自動化編譯的一個控製程序,他通過藉助 Makefile 裡面編寫的編譯規範進行自動化的調用 gcc 、ld 以及運行某些需要的程式進行編譯的程式。一般情況下,他所使用的 Makefile 控制代碼,由 configure 這個設置腳本根據給定的參數和系統環境生成。

3、make install

這條命令來進行安裝(當然有些軟體需要先運行 make check 或 make test來進行一些測試),這一步一般需要你有 root 許可權(因為要向系統寫入文件)

wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
xz -d Python-3.6.7.tar.xz
tar -xf Python-3.6.7.tar
#yum install gcc -y
./configure --prefix=/opt/python make && make install
---------------------
用python查看預設安裝路徑
>>> import sys
>>> sys.path
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6',
'/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages']
--------------------
python3.4預設沒添加path
在/etc/profile最後一行添加
export PATH=$PATH:/opt/python/bin
然後
source /etc/profile

#python快捷path就被改了,yum用的python2,麻煩

# 嘗試安裝django來通過python3解釋器運行它
pip3 install -i https://pypi.douban.com/simple django==1.11.16

# 創建django項目與APP
django-admin startproject mysite
django-admin startapp app01

1.2.3 牛逼的python Tab自動補全

下載setuptool 3.4以上已經預設安裝了easy_install-3.4

下載地址:
https://pypi.python.org/pypi/setuptools/36.2.7
下載命令:
wget https://pypi.python.org/packages/07/a0/11d3d76df54b9701c0f7bf23ea9b00c61c5e14eb7962bb29aed866a5844e/setuptools-36.2.7.zip#md5=b9e6c049617bac0f9e908a41ab4a29ac
解壓:
unzip setuptools-36.2.7.zip
編譯:
python3 setup.py build
python2 setup.py build
無誤後安裝:
python3 setup.py install
python2 setup.py install

下載readline

#yum install -y readline-devel -y 
#pip install readline
tab補全
#python startup file
import readline,rlcompleter
#tab completion
readline.parse_and_bind('tab:complete')
----------------------------
python歷史記錄
#history file
import os
history_file = os.path.join(os.environ["HOME"],".pythonhistory")
[root@mm_local ~]# echo "export PYTHONSTARTUP='/root/.pythonstartup'" >> /root/.bashrc   
[root@mm_local ~]# source /root/.bashrc  
[root@mm_local ~]# cat /root/.pythonstartup   
import os  
import readline  
import rlcompleter  
import atexit  
  
  
#tab completion  
readline.parse_and_bind("tab: complete")  
  
  
#history file  
history_file = os.path.join(os.environ["HOME"],".pythonhistory")  
try:  
    readline.read_history_file(history_file)  
except IOError:  
    pass  
atexit.register(readline.write_history_file,history_file)  
  
  
del os,history_file,readline,rlcompleter  
[root@mm_local ~]# python  
Python 2.7.3 (default, Jun  5 2013, 22:40:26)   
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2  
Type "help", "copyright", "credits" or "license" for more information.  
>>> import sys  
>>> sys.path<tab> #按tab鍵就可以自動補全了  
  
[root@mm_local ~]# python  
>>>  
>>> sys.path #按上下方向鍵即可找到歷史命令 
整體代碼

加入python的啟動環境變數,永久生效自動補全

只需要啟動時執行一條命令即可

import rlcompleter, readline
readline.parse_and_bind('tab:complete')
可以將上述的代碼存於~/.pythonrc.py文件中。

然後,在~/.bashrc中設置

export PYTHONSTARTUP=~/.pythonrc.py
這樣,每次啟動終端,bash就會設置PYTHONSTARTUP這個環境變數,然後,python啟動時就會使用這個變數指定的文件中的初始化代碼。

在python解釋器中,輸入一個變數的一部分,或者變數後面加句點,再按TAB鍵就可以看到自動補全的威力。
 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一. Docker安裝 Docker 要求版本Docker 18.09.0+以上 安裝地址:https://www.runoob.com/docker/windows-docker-install.html 1.操作系統win10系統,在啟用或關閉Windows功能中,開啟hyper-v 2.安裝後 ...
  • using System; namespace runoob { class MyClass { static void Main(string[] args) { MyClass1 myClass = new MyClass1(); myClass.Dialog(); } } class MyCl ...
  • 引言 .net core 3.1 是微軟LTS長期3年支持版本,正式發佈於2019 12 03,並且在windows平臺上支持了Winfrom跟WPF桌面應用。本文將介紹使用 vs 2019 開發 Windows Forms 桌面應用程式。 開發 Windows Forms 程式 首先,打開 vs ...
  • saltstack高效運維 salt介紹 saltstack是由thomas Hatch於2011年創建的一個開源項目,設計初衷是為了實現一個快速的遠程執行系統。 salt強大嗎 系統管理員日常會進行大量的重覆性操作,例如安裝軟體,修改配置文件,創建用戶,批量執行命令等等。如果主機數量龐大,單靠人工 ...
  • nginx入門與實戰 網站服務 想必我們大多數人都是通過訪問網站而開始接觸互聯網的吧。我們平時訪問的網站服務 就是 Web 網路服務,一般是指允許用戶通過瀏覽器訪問到互聯網中各種資源的服務。 Web 網路服務是一種被動訪問的服務程式,即只有接收到互聯網中其他主機發出的 請求後才會響應,最終用於提供服 ...
  • web service基礎知識 Web服務基礎 用戶訪問網站的基本流程 我們每天都會用web客戶端上網,瀏覽器就是一個web客戶端,例如谷歌瀏覽器,以及火狐瀏覽器等。 當我們輸入www.oldboyedu.com/時候,很快就能看到老男孩教育的官網了,這一切看起來很平淡無奇,背後又是什麼道理呢?普通 ...
  • Mac下安裝ipython與jupyter IPython從Python發展而來,更傾向於科學計算。互聯網數據分析更喜歡用。 首先切換root用戶: sudo su - pip3自動安裝ipython MacBook-Pro:~ root# pip3 install ipython 自動安裝完成後建 ...
  • python開發之virtualenv與virtualenvwrapper講解 在使用 Python 開發的過程中,工程一多,難免會碰到不同的工程依賴不同版本的庫的問題; 亦或者是在開發過程中不想讓物理環境里充斥各種各樣的庫,引發未來的依賴災難。 此時,我們需要對於不同的工程使用不同的虛擬環境來保持 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...