是否需要在哪裡添加包的路徑?或者還需要在哪裡設置什麼呢?


去了解下 python 環境管理吧!

python的環境管理,我們可以從語言和操作系統兩個層面來分析。接下來具體說說。

語言環境

語言層面的環境管理,python已經為我們提供了相應的解決方案,這裡將介紹的是 vritual env 和 conda env。

在工程開發方面,我們經常使用的是virtual env。在數據科學研究方面,我們經常使用的conda env。它們都是通過創建獨立的目錄來存放python運行所需的文件,最終實現生成一個獨立的虛擬環境。

virtual env

virtual env不是python自帶的功能,我們需要先安裝相應的庫。pip安裝即可:

$ pip install virtualenv

接著來使用它。先來創建,進到自己當前的項目目錄,執行如下命令:

$ virtual .env

此時就成功創建了一個獨立的環境。但是這個時候,控制台的默認環境並沒有切換到這個獨立環境下,在執行下面命令的:

$ source .env/bin/activate

如果你使用的IDE,一般它們都是支持環境選擇的。找到對應的設置,選用環境目錄就好了。

virtual env就簡單說這些吧,不然回答就太長了。如果想更流暢的使用virtual env,可以再去了解一下virtualenvwrapper。深入了解傳送門:

Pipenv 虛擬環境 — The Hitchhikers Guide to Python?

pythonguidecn.readthedocs.io圖標

2017年,requests 作者開發了個新的 python 環境管理工具,通過結合 pip + virtualenv,提供了一種非常人性化的虛擬環境使用方式。

conda env

如果要使用conda env來管理python環境,首先你的python得是用anaconda安裝的。

anaconda是一個免費開源的Python和R語言的發行版本,用於計算科學(數據科學、機器學習、大數據)等,適用於Windows、macOS和Linux。其實主要是python,做數據科學的朋友應該都很了解。

有了conda的環境,就可以直接使用它的命令來創建虛擬環境了。如下:

conda create -n python36 python=3.6

它不像 virtual env 那樣以本地的python環境為模板創建新環境,而是會從網路上拉取文件,所以它的創建速度會相對慢些。當然,正是因為這樣,conda安裝環境可以使用很多不同的模板,比如適合數據分析或純粹的python環境,都可以在創建的時候指定。我記得anaconda提供了雲服務,我們應該也可以共享自己的python環境模板。要詳細了解可以去官網看看。這裡貼個之前合作過的某位大神的文章,傳送門:

致Python初學者們 - Anaconda入門使用指南?

www.jianshu.com

操作系統

前面介紹的方法固然已經可以解決我們遇到大部分的問題。但是某些情況它還是無法處理,比如操作系統層面的文件丟失,系統配置文件破損。

這就需要從系統層面看問題,此時或許都喜歡重裝系統來解決問題,但重裝系統卻會把之前的環境都破壞了。那麼,如果能夠製作一份適合自己的環境時刻備份著,不是很好嗎。從這個角度出發,我來說說三類解決方案:虛擬機、vagrant、docker。

虛擬機

也就是 virtual machine,創建虛擬機首先得選擇相應的虛擬機軟體,比如vmware、virtualbox這兩個比較常用。使用虛擬機有什麼優點呢?

  • 任意選擇系統,可以任意選擇安裝你喜歡的系統作為開發環境,如Linux、windows 或 其他;
  • 支持版本管理,一般虛擬機軟體都支持版本管理。你可以在任意時間備份與還原系統;
  • 支持系統遷移,我們可以把系統文件導出遷移到其他機器上,實現環境共享;

但是虛擬機缺點也很明顯,比如太耗費資源、佔用空間太大、安裝速度太慢等。這實在難以忍受。

vagrant

簡單來說可以這麼理解,vagrant是以虛擬機軟體為基礎開發的便於虛擬機管理的軟體。它支持的虛擬機軟體種類多樣,比如vmware、virtualbox、hyper-v等。它的目標是 "Development Environments Made Easy",也就是簡化開發環境的工作,而非生產環境。

我這裡推薦是vagrant+ virtualbox這個組合,為什麼呢?基於virtualbox的幾個優點:

  • vagrant默認選擇的虛擬機軟體;
  • 輕量,不像其他軟體那般強大但夠用;
  • 跨平台,QT開發,支持windows、linux、macos。這是我選擇它的首要原因;

vagrant還提供了有哪些優點?首先,前面介紹的虛擬機有的優點它都有,其他呢?如下:

  • 操作很簡單,比如系統安裝只需兩行命令就可搞定;
  • 安裝速度快,提供box的鏡像管理方式,類似系統.iso,只要box下載好,創建機器1分鐘搞定;
  • 資源消耗低,我的機器同時啟動十幾台工作正常。我的機器也不錯,mac pro 15版;
  • 佔用空間少,比如安裝一個centos,原始box只有200~300M。安裝了必需的軟體,大概能到1~2G,相對於虛擬機的10G以上確實小很多。
  • 提供雲倉庫,類似於github倉庫,從裡面可以找很多別人分享的box鏡像;

我幾年整理過一篇vagrant的文章,不過感覺寫的一般。有興趣可以看看:

兩行命令創建Linux?

www.jianshu.com圖標

docker

容器技術是現在很火的一門技術,而其中佔有份額最大的就是docker。和虛擬機不同,它是從文件系統層面的實現的虛擬化。它的學習成本比較高,vagrant的很多優點它都有且更勝一籌;比如:

  • 佔用空間更小
  • 資源消耗更低
  • 也提供雲倉庫
  • 安裝系統秒級別

現在的微服務架構很多都離不開docker+k8s的組合。容器技術將來應該會逐漸成為生產環境部署的主流方式。


你看看是否你使用了這個interpreter


在當前環境下使用conda list命令,看看你說的那個包在不在,如果你激活了虛擬環境,用pip list查看一下,沒有的話就pip install。


打開settings.json,看一下。


重新在environment裡面的all添加下載


推薦閱讀:
相关文章