Python_1_基礎(chǔ)概念及環(huán)境部署

1. 編程基礎(chǔ)

??用任何編程語言來開發(fā)程序厦坛,都是為了讓計(jì)算機(jī)干活寻狂,而計(jì)算機(jī)干活的 CPU 只認(rèn)識機(jī)器指令码耐,所以,盡管不同的編程語言差異極大突硝,最后都得 翻譯 成 CPU 可以執(zhí)行的機(jī)器指令再悼。而不同的編程語言炫七,干同一個(gè)活磕蛇,編寫的代碼量,差距也很大囱桨。
??比如仓犬,完成同一個(gè)任務(wù),可能 C 語言要寫 1000 行代碼舍肠,Java 需要寫 100 行搀继,而 Python 卻只要 10 行窘面。
??所以 Python 是一種高級語言。
??那是不是越低級的程序越難學(xué)叽躯,越高級的程序越簡單财边?表面上來說,是的点骑,但是酣难,在非常高的抽象計(jì)算中,高級的 Python 程序設(shè)計(jì)也是非常難學(xué)的黑滴,所以憨募,高級程序語言不等于簡單。即便如此袁辈,對于初學(xué)者和完成普通任務(wù)菜谣,Python 語言還是非常簡單易用的。連 Google 都在大規(guī)模使用 Python晚缩,別擔(dān)心學(xué)了會沒用尾膊。

1.1. 基本概念

??程序:是一組能讓計(jì)算機(jī)識別和執(zhí)行的指令。
??計(jì)算機(jī)五大部件:輸入設(shè)備荞彼、輸出設(shè)備冈敛、運(yùn)算器控制器鸣皂、存儲器莺债,各部件的主要作用:

  • 運(yùn)算器:完成各種算數(shù)運(yùn)算、邏輯運(yùn)算签夭、數(shù)據(jù)傳輸?shù)葦?shù)據(jù)加工處理
  • 控制器:控制程序的執(zhí)行
  • 存儲器:用于記憶程序和數(shù)據(jù),例如內(nèi)存
  • 輸入設(shè)備:將數(shù)據(jù)或者程序輸入到計(jì)算機(jī)中椎侠,例如鼠標(biāo)第租、鍵盤
  • 輸出設(shè)備:將數(shù)據(jù)或程序的處理結(jié)果展示給用戶,例如顯示器我纪、打印機(jī)等

??CPU 由運(yùn)算器和控制器組成慎宾,其中還有寄存器以及多級緩存,其中我們所熟知的 L1浅悉、L2 緩存是每個(gè) CPU 核心獨(dú)占的趟据,而 L3 緩存則是所有核心共享的。寄存器术健、多級緩存汹碱、內(nèi)存、硬盤的讀取速度依次降低荞估。

??計(jì)算機(jī)語言: 人與計(jì)算機(jī)之間交互的語言咳促,機(jī)器語言稚新、匯編語言等屬于早期語言的代表,機(jī)器語言由一定位數(shù)組成的二進(jìn)制 0 和 1 的序列組成跪腹,這種語言非彻由荆晦澀,難以理解冲茸,難以記錄屯阀,而匯編語言則借助了一些助記符來替代機(jī)器指令,雖然好記了一點(diǎn)轴术,但還是難以學(xué)習(xí)难衰,后來經(jīng)過時(shí)代的變遷,牛人們的不斷貢獻(xiàn)膳音,慢慢的針對不同場景的編程語言逐漸出現(xiàn)召衔、百花齊放。

1.2. 語言分類

??從距離機(jī)器和人類可讀的兩種方向祭陷,主要分為 低級語言高級語言苍凛。

  • 低級語言:面向的機(jī)器的語言,比如機(jī)器語言兵志、匯編語言醇蝴,不同的機(jī)器不能通用。
  • 高級語言:接近人類可讀的自然和數(shù)字結(jié)合的計(jì)算機(jī)語言想罕,由編譯程序轉(zhuǎn)換成機(jī)器指令來進(jìn)行執(zhí)行悠栓,我們只需要關(guān)注如何書寫源程序,剩下編譯的事情就交給編譯器進(jìn)行處理按价。

??從運(yùn)行方式來看又分為 編譯型語言解釋型語言惭适。

  • 編譯語言:把代碼轉(zhuǎn)換成目標(biāo)機(jī)器的 CPU 指令
  • 解釋語言:解釋后轉(zhuǎn)換成字節(jié)碼,運(yùn)行在虛擬機(jī)上楼镐,解釋器執(zhí)行中間代碼

??語言越高級癞志,越接近人類的自然語言和數(shù)學(xué)語言,越低級則越能讓機(jī)器理解框产,高級語言和低級語言之間需要的一個(gè)轉(zhuǎn)換的工具:編譯器凄杯、解釋器,例如 C秉宿、C++ 等語言的源代碼需要本地編譯戒突,而 Java、Python描睦、C# 的源代碼需要被解釋器編譯成中間代碼膊存,在虛擬機(jī)上運(yùn)行。

low-and-high.png

1.3. 高級語言的發(fā)展

??高級語言根據(jù)發(fā)展歷程主要分為四個(gè)階段或者說是四種類型:非結(jié)構(gòu)化結(jié)構(gòu)化膝舅、面向?qū)ο?/code>嗡载、函數(shù)式

  • 非結(jié)構(gòu)化語言:編號或標(biāo)簽、GOTO仍稀、子程序可以有多個(gè)入口和出口洼滚,有分支、循環(huán)技潘。

  • 結(jié)構(gòu)化語言:任何基本語句只允許是唯一入口和出口遥巴,有順序、分支享幽、循環(huán)铲掐、廢棄 GOTO

  • 面向?qū)ο蟮恼Z言:更加接近人類認(rèn)知世界的方式,萬事萬物抽象成對象值桩,對象間關(guān)系抽象成類和繼承摆霉。而類具有封裝、繼承奔坟、多態(tài)等特性

  • 函數(shù)式語言:屬于一種古老的編程范式携栋,應(yīng)用在數(shù)據(jù)計(jì)算、并行處理等場景咳秉,在這種語言中婉支,函數(shù)是 ' 一等公民 ',利用函數(shù)的特性澜建,還有更高級的比如高階函數(shù)等向挖。

2. 程序

??程序 = 算法 + 數(shù)據(jù)結(jié)構(gòu)程序 有如下特點(diǎn):

  1. 數(shù)據(jù)是一切程序的核心
  2. 數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)在計(jì)算機(jī)中的類型和組織方式
  3. 算法是處理數(shù)據(jù)的方式炕舵,算法有優(yōu)劣之分

??寫程序難點(diǎn):

  1. 理不清數(shù)據(jù)
  2. 搞不清處理方法
  3. 無法把數(shù)據(jù)設(shè)計(jì)轉(zhuǎn)換成數(shù)據(jù)結(jié)構(gòu)何之,無法把處理方法轉(zhuǎn)換成算法
  4. 無法用設(shè)計(jì)范式來進(jìn)行程序設(shè)計(jì)
  5. 世間程序皆有 bug,但不會 debug

3. Python 的語言介紹

??Python 是著名的 “龜叔” Guido van Rossum 在 1989 年圣誕節(jié)期間咽筋,為了打發(fā)無聊的圣誕節(jié)而編寫的一門編程語言溶推。
??Python 作為一門高級編程語言,相比于其他語言晤硕,初學(xué)者很容易入門,除此之外庇忌,Python 還具有以下優(yōu)點(diǎn):

  1. 簡單:Python 奉行簡潔主義舞箍,易于讀寫,它使你能夠?qū)W⒂诮鉀Q問題而不是去搞明白語言本身皆疹。
  2. 兼容性:Python 兼容眾多平臺疏橄,所以開發(fā)者不會遇到使用其他語言時(shí)常會遇到的困擾。
  3. 面向?qū)ο?/strong>:Python 既支持面向過程,也支持面向?qū)ο缶幊躺悠取T诿嫦蜻^程編程中晃酒,程序員復(fù)用代碼,在面向?qū)ο缶幊讨姓蓿褂没跀?shù)據(jù)和函數(shù)的對象贝次。
  4. 豐富的庫:Python 標(biāo)準(zhǔn)庫確實(shí)很龐大。它可以幫助你處理各種工作彰导,包括正則表達(dá)式蛔翅、文檔生成、單元測試位谋、線程山析、數(shù)據(jù)庫、網(wǎng)頁瀏覽器掏父、CGI笋轨、FTP、電子郵件赊淑、XML爵政、XML-RPC、HTML膏燃、WAV 文件茂卦、密碼系統(tǒng)、GUI (圖形用戶界面)组哩、Tk 和其他與系統(tǒng)有關(guān)的操作等龙。
  5. 規(guī)范的代碼:Python 采用強(qiáng)制縮進(jìn)的方式使得代碼具有極佳的可讀性。
  6. 可擴(kuò)展性和可嵌入性伶贰。如果你需要你的一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開蛛砰,你可以把你的部分程序用 C 或 C++ 編寫,然后在你的 Python 程序中使用它們黍衙。你可以把 Python 嵌入你的 C/C++ 程序泥畅,從而向你的程序用戶提供腳本功能。

??Python 的學(xué)習(xí)強(qiáng)度相對于其他的一些編程語言普遍公認(rèn)更簡單琅翻,零基礎(chǔ)也可輕松學(xué)會位仁,而且發(fā)展前景好,在人工智能方椎、大數(shù)據(jù)聂抢、云計(jì)算、運(yùn)維自動化等領(lǐng)域均得到了廣泛的應(yīng)用棠众,且現(xiàn)階段人才緊缺琳疏,薪資普遍高于其他編程語言有决,因此,是 IT 轉(zhuǎn)型的好選擇空盼!

??此外 Python 還是一種 動態(tài)編譯的书幕、強(qiáng)類型的 語言,那么什么是動態(tài)編譯語言揽趾,什么是強(qiáng)類型語言呢台汇?

  • 靜態(tài)編譯語言:實(shí)現(xiàn)聲明變量類型,類型不能再改變但骨,編譯時(shí)檢查励七,如 C、C++奔缠、Java
  • 動態(tài)編譯語言:不用事先聲明類型掠抬,隨時(shí)可以賦值為其他類型,但編程時(shí)不知道是什么類型校哎,很難推斷两波,如 Python、PHP闷哆、JavaScript
  • 強(qiáng)類型語言:不同類型之間操作腰奋,必須先強(qiáng)制類型轉(zhuǎn)換為同一類型,比如 print('a'+1), 將字符串和數(shù)字直接相加將拋出異常抱怔,無法正常執(zhí)行劣坊,如 Python、Java
  • 弱類型語言:不同類型間可以操作屈留,自動隱式轉(zhuǎn)換局冰,比如 JavaScript 中 Console.log(1+'a')
program_language_type.png

4. Python 的解釋器

??Python 這種高級語言需要編譯成字節(jié)碼然后由 Python 虛擬機(jī)(解釋器) 去執(zhí)行,針對解釋器灌危,有多種不同的版本康二。

  • 官方的 CPython:C 語言開發(fā),最廣泛的 Python 解釋器
  • IPython:一個(gè)交互式勇蝙、功能增強(qiáng)的 CPython沫勿,其典型應(yīng)用是 jupyter notebook,常用于學(xué)習(xí) Python味混、數(shù)據(jù)分析产雹、機(jī)器學(xué)習(xí)等領(lǐng)域
  • PyPy:Python 語言寫的 Python 解釋器,并且針對性的進(jìn)行了優(yōu)化翁锡,比如 JIT 技術(shù)蔓挖,動態(tài)編譯 Python 代碼
  • JPython:Python 的源碼編譯成 Java 的字節(jié)碼,跑在 JVM 上
  • IronPython:與 Jython 類似盗誊,運(yùn)行在.Net 平臺上的解釋器时甚,Python 代碼被編譯成.Net 的字節(jié)碼

?? 雖然列舉了這么多編譯器,但是目前主流的還是官方提供的 CPython哈踱,但 PyPy 由于使用 Python 語言編寫荒适,針對性的進(jìn)行了許多優(yōu)化,據(jù)說速度可以達(dá)到 CPython 的 5 倍以上开镣,建議后期可以研究一下

5. Python 版本區(qū)別

??Python 是很多 Linux 系統(tǒng)默認(rèn)安裝的語言刀诬,以 CentOS 為例由于其 yum 包管理工具使用的是 Python 開發(fā),所以其內(nèi)置了 Python 2.x 版本邪财,但是 Python 目前已經(jīng)發(fā)展到了 3.7 版本了陕壹,并且 Python 官方對 2.x 的支持也快到期,所以建議學(xué)習(xí) Python 的 3.x 版本树埠。
??Python 3.x 的在本質(zhì)上和 Python 2.x 有很大的變化糠馆,2.x 的程序是不能直接在 3.x 的版本上運(yùn)行的,它們的主要區(qū)別有:

  • 語句函數(shù)化怎憋。例如 print(1,2) 打印出 1 2又碌,但是 2.x 中意思是 print 語句打印元組,3.x 中意思是函數(shù)的 2 個(gè)參數(shù)
  • 整除绊袋。在 3.x 中毕匀,/ 為自然除,// 為整除癌别。2.x 中 / 和 // 都為整除皂岔。
  • input 函數(shù)。3.x 中把 2.x 中的 raw_input 舍去展姐,功能合并到 input 函數(shù)中去躁垛。
  • round 函數(shù)。在 3.x 中的取整變?yōu)榫嚯x最近的偶數(shù)
  • 3.x 字符串統(tǒng)一使用 unicode诞仓。2.x 中如果想要輸入中文缤苫,還需要在文件頭顯示聲明 (_*_coding:utf-8 _*_)
  • 異常的捕獲、拋出的語法改變

6. Python 安裝

??不同平臺需要安裝不同版本的 Python墅拭,比如 windows活玲,需要用 exe 應(yīng)用程序,而 Linux 可以下載源碼編譯安裝谍婉,或者 yum 安裝舒憾。

6.1. windows 安裝

??安裝方法:由于 windows 是圖形界面,這里就不一一截圖了穗熬,只文字說明安裝步驟镀迂。

  1. 下載安裝包
    訪問 https://www.Python.org/ 在 Downloads 標(biāo)簽頁下選擇 windows,然后根據(jù)自己需求唤蔗,下載對應(yīng)的 Windows x86-64 executable installer 版本

  2. 安裝
    ??雙擊下載好的 Windows x86-64 executable installer探遵,一直 next 即可窟赏。

??安裝路徑默認(rèn)即可,不要自作聰明修改

  1. 配置環(huán)境變量
    ??在安裝程序中選擇 add to PATH箱季,就是把 Python 命令安裝在 PATH 變量中涯穷,讓我們可以在任意地方通過命令訪問,如果忘記選擇藏雏,也可以通過下面的方法進(jìn)行設(shè)置:
    ??右擊我的電腦 --> 屬性 --> 高級系統(tǒng)設(shè)置 --> 環(huán)境變量 --> 編輯 PATH 變量 --> 添加 Python 的安裝路徑 C:\Python36 (以分號 ; 隔開)--> 確定

  2. 測試
    ??打開 cmd (命令提示符拷况,快捷鍵 windows+r) ,輸入 Python 掘殴,可以進(jìn)入解釋器表示安裝成功

6.2. Linux 安裝

??Linux 的安裝有 yum 和編譯安裝兩種方式:

  1. yum 方式
[root@centos7 ~]# yum install -y Python36
  1. 編譯安裝
    ??編譯安裝稍微麻煩一些赚瘦,詳細(xì)操作步驟請參考我的另一篇博客《CentOS 7 系統(tǒng)編譯安裝 Python 3 環(huán)境》:https://blog.csdn.net/colinlee19860724/article/details/88856657

7. pyenv 多版本管理

??在實(shí)際工作情況下,由于每個(gè)項(xiàng)目用的可能不是一個(gè)版本的 Python奏寨,并且不同應(yīng)用程序所以來的第三方程序包都不同起意,如何讓多版本 Python 進(jìn)行共存,并且保證每個(gè)項(xiàng)目依賴的第三方包病瞳。想要讓多個(gè) Python 版本共存杜恰,有如下兩種方法:

  • 編譯安裝新版本至某一個(gè)路徑
  • 多版本 Python 管理工具

??如果每添加一個(gè)新的 Python 版本就編譯一次的話,大大增加了環(huán)境切換的成本仍源,并且還需要區(qū)分命令(Python3.5, Python 2.7) 等等心褐,所以就凸顯出了多版本管理工具的優(yōu)點(diǎn)

7.1. pyenv 介紹及安裝

??pyenv 是一個(gè)多版本 Python 管理工具,它可以幫我們安裝想要的 Python 版本笼踩,并且可以一鍵切換逗爹。pyenv 是一個(gè)開源的項(xiàng)目,其代碼托管在 github 上嚎于,我們可以訪問它的 github 站點(diǎn)來根據(jù) install 的步驟進(jìn)行安裝掘而。pyenv 的 github 地址:https://github.com/pyenv/pyenv,使用此方法的詳細(xì)安裝說明還可以參考我的另一篇博客《CentOS 7 系統(tǒng)下使用 Pyenv 安裝 Python 環(huán)境》:https://blog.csdn.net/colinlee19860724/article/details/89095650
??pyenv 官方還提供了便捷的安裝方式于购,它的項(xiàng)目地址是:https://github.com/pyenv/pyenv-installer袍睡,僅需要簡單幾步就可以完成安裝,下面以這種方式進(jìn)行說明肋僧。

??下面的步驟已在 CentOS 7.6 上測試斑胜,并安裝成功:

  1. 安裝依賴包 (由于 pyenv 默認(rèn)使用編譯的方式安裝 Python,所以它需要的依賴包需要提前安裝)
[root@centos7 ~]# yum install -y gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel
  1. 安裝 GIT (由于 pyenv-installer 中調(diào)用 git 使用 clone 的方式拉取 pyenv 的代碼嫌吠,所以這里需要進(jìn)行安裝)
[root@centos7 ~]# yum install -y git
  1. 安裝 Pyenv
# 執(zhí)行如下命令安裝 pyenv
[root@centos7 ~]# curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
  1. 修改環(huán)境變量
[root@centos7 ~]# vim /etc/profile.d/pyenv.sh
[root@centos7 ~]# cat /etc/profile.d/pyenv.sh
#!/bin/bash
# Define environment variable
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
  
[root@centos7 ~]# source /etc/profile.d/pyenv.sh
# PS:這里直接更新了 /etc/profile.d止潘,如果是單個(gè)用戶安裝并使用,建議添加到用戶家目錄中的 profile 文件中去
  1. 驗(yàn)證
[root@centos7 ~]# pyenv version
system (set by /root/.pyenv/version)  # 表示當(dāng)前使用的是系統(tǒng)的 Python 版本
  1. pyenv 命令
pyenv -h                # 即可列出命令幫助信息
pyenv install -l        # 列出安裝的版本信息
pyenv install 3.6.6     # 安裝 3.6.6 版本
pyenv versions          # 查看系統(tǒng) Python 版本(pyenv install 安裝的版本都可以在這里看到)
pyenv global 3.6.6      # 切換 Python 默認(rèn)版本為 3.6.6
pyenv local 3.6.6       # 切換當(dāng)前目錄下的 Python 版本為 3.6.6 (和目錄綁定辫诅,子目錄繼承環(huán)境設(shè)定)
pyenv shell 3.6.6       # 僅僅針對當(dāng)前 shell 環(huán)境 (會話級別)
  1. 離線安裝 Python 版本

??通過 pyenv install 3.6.6 進(jìn)行安裝時(shí)凭戴,它會聯(lián)網(wǎng)下載 Python 3.6.6 的源碼包,如果機(jī)器不能上網(wǎng)的話炕矮,可以采用離線的方式么夫,預(yù)先下載好 Python 要安裝的 Python 的版本包(注意需要 gz,xz,bz者冤,三種格式都需要) 在 pyenv 的安裝目錄下,一般在用戶的家目錄下 .pyenv 目錄中档痪,進(jìn)入后新建子目錄 cache譬嚣,然后把三個(gè)包考進(jìn)去即可,然后再次執(zhí)行 pyenv install 3.6.6 即可

[root@centos7 ~]# cd .pyenv
[root@centos7 ~]# mkdir cache
[root@centos7 ~]# rz                   # 通過仿真終端上傳三個(gè)下載好的 Python 包
[root@centos7 ~]# pyenv install 3.6.6

7.2. virtualenv

??當(dāng)多個(gè)項(xiàng)目公用一臺主機(jī)的時(shí)候钞它,就會產(chǎn)生很多問題,當(dāng)你的項(xiàng)目和其他人的項(xiàng)目共用 Python 3.6.6 時(shí)殊鞭,假如每個(gè)項(xiàng)目都安裝了很多依賴包遭垛,你如何區(qū)分哪些包是你的項(xiàng)目需要的?這時(shí) virtualenv 就很重要了操灿,它可以在 pyenv 的環(huán)境中锯仪,再造一個(gè)虛擬環(huán)境,這個(gè)環(huán)境是基于 pyenv 中管理的某個(gè)主環(huán)境趾盐,派生出來的獨(dú)立子環(huán)境庶喜,你對 virtualenv 進(jìn)行的操作,和其他的 virtualenv 沒有任何關(guān)聯(lián)救鲤。

 # 創(chuàng)建一個(gè) virtualenv 環(huán)境久窟,名字為 colin,基于 pyenv 管理的 3.6.6 版本
[root@centos7 ~]# pyenv virtualenv 3.6.6 colin     
[root@centos7 ~]# pyenv versions
* system (set by /root/.pyenv/version)
  3.6.6
  3.6.6/envs/colin
  colin
[root@centos7 ~]# mkdir lxl_test
[root@centos7 ~]# cd lxl_test
[root@centos7 lxl_test]# pyenv local colin
[root@centos7 lxl_test]# pyenv versions
  system
  3.6.6
  3.6.6/envs/colin
* colin (set by /root/lxl_test/.python-version)   # 該目錄 virtualenv 環(huán)境已切換本缠,這樣我們就可以放心的安裝和下載依賴包了

7.3. pyenv 安裝位置

??virtualenv 創(chuàng)建的虛擬環(huán)境都存放在 .pyenv 安裝目錄的 versions 下:

[root@centos7 versions]# pwd
/root/.pyenv/versions
[root@centos7 versions]# ll
total 0
drwxr-xr-x. 7 root root 68 Apr  1 15:17 3.6.6
lrwxrwxrwx. 1 root root 38 Apr  1 15:17 colin -> /root/.pyenv/versions/3.6.6/envs/colin

?? 而你在virtualenv中安裝的包斥扛,則存放在virtualenv環(huán)境中對應(yīng)的site-packages目錄下

[root@centos7 site-packages]# pwd
/root/.pyenv/versions/3.6.6/envs/colin/lib/python3.6/site-packages
[root@centos7 site-packages]# ls
attr                                pangu-4.0.6.1.dist-info
attrs-19.1.0.dist-info              pangu.py
ipykernel                           prompt_toolkit-2.0.9.dist-info
ipykernel-5.1.0.dist-info           ptyprocess
ipykernel_launcher.py               ptyprocess-0.6.0.dist-info
IPython                             pvectorc.cpython-36m-x86_64-linux-gnu.so
ipython-7.4.0.dist-info             __pycache__
ipython_genutils                    pygments
ipython_genutils-0.2.0.dist-info    Pygments-2.3.1.dist-info
ipywidgets                          pyrsistent
ipywidgets-7.4.2.dist-info          pyrsistent-0.14.11-py3.6.egg-info

7.4. 導(dǎo)出項(xiàng)目依賴包

??如果某一天我要導(dǎo)出我當(dāng)前環(huán)境安裝的所有依賴包,該怎么辦呢丹锹?Python 已經(jīng)提供了一個(gè)工具稀颁,供我們導(dǎo)出當(dāng)前 Python 版本安裝的所有依賴包及名稱,它就是 pip 命令 (Python 3.x 中已經(jīng)內(nèi)置該命令), 使用它的 freeze 參數(shù)即可楣黍。

# 使用 freeze 可以直接導(dǎo)出當(dāng)前安裝的依賴包以及
[root@centos7 lxl_test]# pip freeze > requirement.txt    # 對應(yīng)的版本
[root@centos7 lxl_test]# cat requirement.txt
pangu==4.0.6.1

??注意:在新的項(xiàng)目中匾灶,只需要使用pip install -r requirement.txt 即可,讓 pip 按照 requirement.txt 文件中標(biāo)識的包和版本進(jìn)行安裝了租漂。pip 命令還有很多強(qiáng)大的功能阶女,下面我們來做個(gè)簡要介紹。

8. pip 命令

??pip 命令對應(yīng) Python 來說哩治,就像 Yum 和 CentOS 的關(guān)系张肾,它是 Python 的包管理工具,我們可以使用 pip 命令安裝幾乎所有的 Python 第三方包锚扎。

8.1. 命令說明

[root@centos7 lxl_test]# pip -h

Usage:   
  pip <command> [options]

Commands:
  install                    # 安裝第三方包
  download                   # 下載第三方包
  uninstall                  # 卸載第三方包
  freeze                     # 輸出包的名稱和版本信息吞瞪,可以重定向到文件中去
  list                       # 顯示已安裝的第三方包
  show                       # 顯示安裝包信息
  search                     # 在 Pypi 庫中查找第三方包
  help                       # 查看幫助信息

General Options:
  -h, --help                 # 顯示幫助
  -v, --verbose              # 顯示詳細(xì)信息
  -V, --version              # 顯示版本信息
  -q, --quiet                # 安靜模式,不輸出任何提示信息
  --log <path>               # 把輸出信息追加 log 文件中
  --proxy <proxy>            # 使用代理驾孔,格式為: [user:passwd@] proxy.server:port.
  --retries <retries>        # 最大連接失敗重試次數(shù)芍秆,默認(rèn) 5 次
  --timeout <sec>            # 設(shè)置最大超時(shí)時(shí)間惯疙,默認(rèn)是 15 秒
  --cache-dir <dir>          # 指定緩存目錄
  --no-cache-dir             # 禁用緩存

8.2. 配置說明

??pip 命名默認(rèn)是從 Python 官方提供的 Pypi 倉庫進(jìn)行第三方軟件包,由于官方源在國外妖啥,訪問速度可能會很慢霉颠,我們可以把 Pypi 源換成國內(nèi)的阿里源,來增加訪問速度荆虱。 配置起來也很簡單蒿偎,只需要新增 pip 的配置文件,指定源為阿里源即可怀读。
??創(chuàng)建 pip 配置文件:

[root@centos7 ~]# mkdir ~/.pip
[root@centos7 ~]# cd .pip
[root@centos7 .pip]# vim pip.conf 
[root@centos7 .pip]# cat pip.conf
[global]                                           # 全局配置段
index-url=https://mirrors.aliyun.com/pypi/simple/  # pypi 倉庫地址
trusted-host=mirrors.aliyun.com                    # 信任主機(jī)

9. Pycharm 安裝及基本使用

??PyCharm 是一種 Python IDE诉位,帶有一整套可以幫助用戶在使用 Python 語言開發(fā)時(shí)提高其效率的工具,比如調(diào)試菜枷、語法高亮苍糠、Project 管理、代碼跳轉(zhuǎn)啤誊、智能提示岳瞭、自動完成、單元測試蚊锹、版本控制瞳筏。此外,該 IDE 提供了一些高級功能牡昆,以用于支持 Django 框架下的專業(yè) Web 開發(fā)乏矾。
??一句話總結(jié):幫助我們將代碼自動格式化(優(yōu)雅的空格),關(guān)鍵字提示迁杨,以及一鍵執(zhí)行钻心、調(diào)試等功能,對于敏捷開發(fā)有很大的幫助铅协。所以 Pythoner 請使用 Pycharm 吧捷沸。
??具體安裝方法這里不再贅述,請大家自行上網(wǎng)搜索狐史,安裝過程中遇到的問題痒给,歡迎郵件咨詢 517999276@qq.com

10. 第一個(gè) Python 程序

??Python 語言已經(jīng)安裝完畢骏全,環(huán)境也已經(jīng)配置好苍柏,那我們就來寫一個(gè)簡單的 Python 程序吧
??例子如下:

# Python 2.x
print 'hello world'
 
# Python 3.x
print('hello world')

# 這里:引號內(nèi)的是要打印到屏幕上的字符,快去試試吧姜贡。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末试吁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌熄捍,老刑警劉巖烛恤,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異余耽,居然都是意外死亡缚柏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門碟贾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來币喧,“玉大人,你說我怎么就攤上這事袱耽∩辈停” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵扛邑,是天一觀的道長。 經(jīng)常有香客問我铐然,道長蔬崩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任搀暑,我火速辦了婚禮沥阳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘自点。我一直安慰自己桐罕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布桂敛。 她就那樣靜靜地躺著功炮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪术唬。 梳的紋絲不亂的頭發(fā)上薪伏,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死哥蔚,一個(gè)胖子當(dāng)著我的面吹牛础米,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播揽思,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了存捺?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤曙蒸,失蹤者是張志新(化名)和其女友劉穎召噩,沒想到半個(gè)月后母赵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡具滴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年凹嘲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片构韵。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡周蹭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出疲恢,到底是詐尸還是另有隱情凶朗,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布显拳,位于F島的核電站棚愤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏杂数。R本人自食惡果不足惜宛畦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望揍移。 院中可真熱鬧次和,春花似錦、人聲如沸那伐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽罕邀。三九已至畅形,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诉探,已是汗流浹背束亏。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阵具,地道東北人碍遍。 一個(gè)月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像阳液,于是被迫代替她去往敵國和親怕敬。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容