Python開發環境搭建


好像任何一門編程語言都繞不過開發環境的搭建。比如說Java,初學者可能還沒明白什么是JDK,但一般都會按照前輩們的步驟,先下載JDK,然后添加環境變量JAVA_HOME,再把JAVA_HOMEbin目錄加入到環境變量PATH中,有過實際項目開發經驗的朋友大多數緊接着就會安裝依賴管理、項目構建工具,比如說國內常用的Maven等。GolangScala語言的開發環境搭建也都類似。至於用什么編輯器或者IDE來寫代碼,取決於語言特性或個人習慣,比如當前主流的vimVS CodeJetBrains全家桶、Eclipse等等。

使用Python語言的初學者建議直接安裝Anaconda或者輕量級的Miniconda

為什么需要Anaconda

Anaconda官網:https://www.anaconda.com/

Anaconda 是一個用於科學計算的 Python 發行版,支持 Linux, Mac, Windows, 包含了眾多流行的科學計算、數據分析的 Python 包。

介紹Anaconda之前必須要簡單提一下Conda。官網:https://docs.conda.io/en/latest/

Conda is an open source package management system and environment management system that runs on Windows, macOS and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.

Conda包管理器。使用Python進行數據分析時,你會用到很多第三方的包,Conda可以很好地幫助你在計算機上安裝和管理這些包,包括安裝、卸載和更新包。

Conda也是環境管理器。比如你在A項目中用了Python2,而B項目需要使用Python3,同時安裝兩個Python版本可能會造成許多混亂和錯誤。這時候,Conda就可以幫助你為不同的項目建立不同的運行環境。再比如說很多項目使用的包版本不同,很難同時安裝多個版本,此時,可以為不同版本建立不同環境,然后切換到對應版本的環境中工作。

Anaconda包括PythonConda以及一大堆安裝好的科學計算相關工具包,比如:numpypandas等等,開箱即用,非常方便。

Miniconda默認只包含PythonConda

換句話說,安裝好了Anaconda,就相當於同時有了Python環境管理器包管理器以及一大堆開箱即用的科學計算工具包

安裝使用Anaconda

安裝Anaconda

安裝非常簡單,注意一下安裝目錄建議選擇磁盤空間較大的地方。官網下載比較慢的話,可以選擇清華大學鏡像站下載(根據不同操作系統選擇相應的包):
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=D

安裝成功后,命令行中敲conda info,會顯示conda的版本和python的版本等詳細信息;再敲conda list,會列出當前環境下所有安裝的包。

換成國內鏡像源

condapip默認國外鏡像源,所以每次安裝模塊conda install xxx或者pip install xxx的時候非常慢,換成國內的鏡像源會顯著加快模塊安裝速度。

  • 修改Conda鏡像源
    詳細操作見:
    https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

  • 修改pip鏡像源
    Linux系統操作命令如下:

mkdir ~/.pip
cd ~/.pip
vim pip.conf

添加中科大鏡像源,內容如下:

[global]
index-url = https://pypi.mirrors.ustc.edu.cn/simple/

不知道你有沒有疑問,既然有了Conda包管理器,為什么Anaconda環境中,可能還需要用pip安裝包呢?

因為盡管在Anaconda下我們可以很方便的使用conda install xxx來安裝我們需要的依賴,但是Anaconda本身只提供部分包,遠沒有pip提供的包多,有時conda無法安裝我們需要的包,此時可能需要用pip將其裝到conda環境里。

那么Anaconda環境下pip命令安裝的包在哪里呢?會不會影響其他環境呢?

首先要確保用的是本環境的pip,這樣pip install xxx時,包才會安裝到本環境中。Linux系統可以使用which pip來查看當前使用的pip是哪個環境的pip

另外需要注意一下:安裝特定版本的包,conda=pip==。舉例來說:

conda install xxx=1.0.0
pip install xxx==1.0.0

使用Anaconda

安裝好了,默認是在base虛擬環境下,此時我們從base環境復制一份出來,在新環境里工作。

# 復制base環境, 創建test環境
conda create --name test --clone base

# 激活test環境
conda activate test

取消Conda默認激活base虛擬環境

conda config --set auto_activate_base false

再列出我本機的所有環境,如下,可見當前有2個環境,當前激活的是test環境:

(test) ➜  ~ conda info -e
# conda environments:
#
base                     /Volumes/300g/opt/anaconda3
test                  *  /Volumes/300g/opt/anaconda3/envs/test

Anaconda默認安裝了jupyter,命令行輸入:

jupyter notebook

此時會自動彈出瀏覽器窗口打開Jupyter Notebook網頁,默認為http://localhost:8888。下面會簡單介紹一下Jupyter Notebook

這里順便貼一下conda一些常用命令:

  • 虛擬環境管理
# 創建環境,后面的python=3.6是指定python的版本
conda create --name env_name python=3.6

# 創建包含某些包的環境(也可以加上版本信息)
conda create --name env_name python=3.7 numpy scrapy

# 激活某個環境
conda activate env_name

# 關閉某個環境
conda deactivate

# 復制某個環境
conda create --name new_env_name --clone old_env_name

# 刪除某個環境
conda remove --name env_name --all

# 生成需要分享環境的yml文件(需要在虛擬環境中執行)
conda env export > environment.yml

# 別人在自己本地使用yml文件創建虛擬環境
conda env create -f environment.yml
  • 包管理
# 列出當前環境下所有安裝的包
conda list

# 列舉一個指定環境下的所有包
conda list -n env_name

# 查詢庫
conda search scrapys

# 安裝庫安裝時可以指定版本例如:(scrapy=1.5.0)
conda install scrapy

# 為指定環境安裝某個包
conda install --name target_env_name package_name

# 更新安裝的庫
conda update scrapy

# 更新指定環境某個包
conda update -n target_env_name package_name

# 更新所有包
conda update --all

# 刪除已經安裝的庫
conda remove scrapy

# 刪除指定環境某個包
conda remove -n target_env_name package_name

更多命令請查看官方文檔或者查詢幫助命令:

conda --help

conda install --help

使用Jupyter Notebook

Jupyter源於2014年的ipython項目,逐漸發展為支持跨所有編程語言的交互式數據科學和科學計算。Jupyter Notebook,原名IPython Notebook,是IPython的加強網頁版,一個開源Web應用程序,是一款程序員和科學工作者的編程/文檔/筆記/展示軟件。上一篇博客一文上手Python3就是用Jupyter Notebook寫的。效果如下:

Jupyter Notebook可以實時運行代碼、渲染Markdown,將代碼、文本說明和可視化整合在一起,適合數據分析領域的探索性工作,可迭代式地改進代碼來改進解決方法。

Jupyter Notebook中一對In Out會話被視作一個代碼單元,稱為cell。如果cell行號前有*,表示代碼正在運行中。

Jupyter Notebook支持兩種模式:

  • 編輯模式(Enter
    命令模式下回車Enter或鼠標雙擊cell進入編輯模式

  • 命令模式(Esc)
    Esc退出編輯,進入命令模式

熟練在這兩種模式下工作,再結合一些常用的快捷鍵,寫代碼以及文檔的效率會大大提高。

Jupyter Notebook中,可以使用?在另一個窗口中顯示文檔。

例如,len?將創建與help(len)幾乎相同的內容,並在瀏覽器底部窗口中顯示它。

此外,如果使用兩個問號,如my_sum??,將顯示實現該函數的Python代碼。

安裝jupyter_contrib_nbextensions

注意:先關閉jupyter后台服務,然后執行下面的命令

pip install jupyter_contrib_nbextensions

jupyter contrib nbextension install --user --skip-running-check

重啟后,勾選需要的選項如下:

此時就有了代碼提示等功能,如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM