欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Anaconda入門使用總結(jié)

 更新時(shí)間:2018年04月05日 13:29:37   作者:PeterYuan  
個(gè)人嘗試了很多類似的發(fā)行版,最終選擇了Anaconda,因?yàn)槠鋸?qiáng)大而方便的包管理與環(huán)境管理的功能。該文主要介紹下Anaconda,對(duì)Anaconda的理解,并簡(jiǎn)要總結(jié)下相關(guān)的操作

Python易用,但用好卻不易,其中比較頭疼的就是包管理和Python不同版本的問(wèn)題,特別是當(dāng)你使用Windows的時(shí)候。為了解決這些問(wèn)題,有不少發(fā)行版的Python,比如WinPython、Anaconda等,這些發(fā)行版將python和許多常用的package打包,方便pythoners直接使用,此外,還有virtualenv、pyenv等工具管理虛擬環(huán)境。

個(gè)人嘗試了很多類似的發(fā)行版,最終選擇了Anaconda,因?yàn)槠鋸?qiáng)大而方便的包管理與環(huán)境管理的功能。該文主要介紹下Anaconda,對(duì)Anaconda的理解,并簡(jiǎn)要總結(jié)下相關(guān)的操作。

Anaconda概述

Anaconda是一個(gè)用于科學(xué)計(jì)算的Python發(fā)行版,支持 Linux, Mac, Windows系統(tǒng),提供了包管理與環(huán)境管理的功能,可以很方便地解決多版本python并存、切換以及各種第三方包安裝問(wèn)題。Anaconda利用工具/命令conda來(lái)進(jìn)行package和environment的管理,并且已經(jīng)包含了Python和相關(guān)的配套工具。

這里先解釋下conda、anaconda這些概念的差別。conda可以理解為一個(gè)工具,也是一個(gè)可執(zhí)行命令,其核心功能是包管理與環(huán)境管理。包管理與pip的使用類似,環(huán)境管理則允許用戶方便地安裝不同版本的python并可以快速切換。Anaconda則是一個(gè)打包的集合,里面預(yù)裝好了conda、某個(gè)版本的python、眾多packages、科學(xué)計(jì)算工具等等,所以也稱為Python的一種發(fā)行版。其實(shí)還有Miniconda,顧名思義,它只包含最基本的內(nèi)容——python與conda,以及相關(guān)的必須依賴項(xiàng),對(duì)于空間要求嚴(yán)格的用戶,Miniconda是一種選擇。

進(jìn)入下文之前,說(shuō)明一下conda的設(shè)計(jì)理念——conda將幾乎所有的工具、第三方包都當(dāng)做package對(duì)待,甚至包括python和conda自身!因此,conda打破了包管理與環(huán)境管理的約束,能非常方便地安裝各種版本python、各種package并方便地切換。

Anaconda的安裝

Anaconda的下載頁(yè)參見(jiàn)官網(wǎng)下載,Linux、Mac、Windows均支持。

安裝時(shí),會(huì)發(fā)現(xiàn)有兩個(gè)不同版本的Anaconda,分別對(duì)應(yīng)Python 2.7和Python 3.5,兩個(gè)版本其實(shí)除了這點(diǎn)區(qū)別外其他都一樣。后面我們會(huì)看到,安裝哪個(gè)版本并不本質(zhì),因?yàn)橥ㄟ^(guò)環(huán)境管理,我們可以很方便地切換運(yùn)行時(shí)的Python版本。(由于我常用的Python是2.7和3.4,因此傾向于直接安裝Python 2.7對(duì)應(yīng)的Anaconda)

下載后直接按照說(shuō)明安裝即可。這里想提醒一點(diǎn):盡量按照Anaconda默認(rèn)的行為安裝——不使用root權(quán)限,僅為個(gè)人安裝,安裝目錄設(shè)置在個(gè)人主目錄下(Windows就無(wú)所謂了)。這樣的好處是,同一臺(tái)機(jī)器上的不同用戶完全可以安裝、配置自己的Anaconda,不會(huì)互相影響。

對(duì)于Mac、Linux系統(tǒng),Anaconda安裝好后,實(shí)際上就是在主目錄下多了個(gè)文件夾(~/anaconda)而已,Windows會(huì)寫入注冊(cè)表。安裝時(shí),安裝程序會(huì)把bin目錄加入PATH(Linux/Mac寫入~/.bashrc,Windows添加到系統(tǒng)變量PATH),這些操作也完全可以自己完成。以Linux/Mac為例,安裝完成后設(shè)置PATH的操作是

# 將anaconda的bin目錄加入PATH,根據(jù)版本不同,也可能是~/anaconda3/bin
echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc
# 更新bashrc以立即生效
source ~/.bashrc

配置好PATH后,可以通過(guò)which condaconda --version命令檢查是否正確。假如安裝的是Python 2.7對(duì)應(yīng)的版本,運(yùn)行python --version或python -V可以得到Python 2.7.12 :: Anaconda 4.1.1 (64-bit),也說(shuō)明該發(fā)行版默認(rèn)的環(huán)境是Python 2.7。

Conda的環(huán)境管理

Conda的環(huán)境管理功能允許我們同時(shí)安裝若干不同版本的Python,并能自由切換。對(duì)于上述安裝過(guò)程,假設(shè)我們采用的是Python 2.7對(duì)應(yīng)的安裝包,那么Python 2.7就是默認(rèn)的環(huán)境(默認(rèn)名字是root,注意這個(gè)root不是超級(jí)管理員的意思)。

假設(shè)我們需要安裝Python 3.4,此時(shí),我們需要做的操作如下:

# 創(chuàng)建一個(gè)名為python34的環(huán)境,指定Python版本是3.4(不用管是3.4.x,conda會(huì)為我們自動(dòng)尋找3.4.x中的最新版本)
conda create --name python34 python=3.4

# 此時(shí),再次輸入
python --version
# 可以得到`Python 3.4.5 :: Anaconda 4.1.1 (64-bit)`,即系統(tǒng)已經(jīng)切換到了3.4的環(huán)境

# 如果想返回默認(rèn)的python 2.7環(huán)境,運(yùn)行
deactivate python34 # for Windows
source deactivate python34 # for Linux & Mac

# 刪除一個(gè)已有的環(huán)境
conda remove --name python34 --all

# 安裝好后,使用activate激活某個(gè)環(huán)境
activate python34 # for Windows
source activate python34 # for Linux & Mac
# 激活后,會(huì)發(fā)現(xiàn)terminal輸入的地方多了python34的字樣,實(shí)際上,此時(shí)系統(tǒng)做的事情就是把默認(rèn)2.7環(huán)境從PATH中去除,再把3.4對(duì)應(yīng)的命令加入PATH

用戶安裝的不同python環(huán)境都會(huì)被放在目錄~/anaconda/envs下,可以在命令中運(yùn)行conda info -e查看已安裝的環(huán)境,當(dāng)前被激活的環(huán)境會(huì)顯示有一個(gè)星號(hào)或者括號(hào)。

說(shuō)明:有些用戶可能經(jīng)常使用python 3.4環(huán)境,因此直接把~/anaconda/envs/python34下面的bin或者Scripts加入PATH,去除anaconda對(duì)應(yīng)的那個(gè)bin目錄。這個(gè)辦法,怎么說(shuō)呢,也是可以的,但總覺(jué)得不是那么elegant……

如果直接按上面說(shuō)的這么改PATH,你會(huì)發(fā)現(xiàn)conda命令又找不到了(當(dāng)然找不到啦,因?yàn)閏onda在~/anaconda/bin里呢),這時(shí)候怎么辦呢?方法有二:1. 顯式地給出conda的絕對(duì)地址 2. 在python34環(huán)境中也安裝conda工具(推薦)。

Conda的包管理

Conda的包管理就比較好理解了,這部分功能與pip類似。

例如,如果需要安裝scipy:

# 安裝scipy
conda install scipy
# conda會(huì)從從遠(yuǎn)程搜索scipy的相關(guān)信息和依賴項(xiàng)目,對(duì)于python 3.4,conda會(huì)同時(shí)安裝numpy和mkl(運(yùn)算加速的庫(kù))

# 查看已經(jīng)安裝的packages
conda list
# 最新版的conda是從site-packages文件夾中搜索已經(jīng)安裝的包,不依賴于pip,因此可以顯示出通過(guò)各種方式安裝的包

conda的一些常用操作如下:

# 查看當(dāng)前環(huán)境下已安裝的包
conda list

# 查看某個(gè)指定環(huán)境的已安裝包
conda list -n python34

# 查找package信息
conda search numpy

# 安裝package
conda install -n python34 numpy
# 如果不用-n指定環(huán)境名稱,則被安裝在當(dāng)前活躍環(huán)境
# 也可以通過(guò)-c指定通過(guò)某個(gè)channel安裝

# 更新package
conda update -n python34 numpy

# 刪除package
conda remove -n python34 numpy

前面已經(jīng)提到,conda將conda、python等都視為package,因此,完全可以使用conda來(lái)管理conda和python的版本,例如

# 更新conda,保持conda最新
conda update conda

# 更新anaconda
conda update anaconda

# 更新python
conda update python
# 假設(shè)當(dāng)前環(huán)境是python 3.4, conda會(huì)將python升級(jí)為3.4.x系列的當(dāng)前最新版本

補(bǔ)充:如果創(chuàng)建新的python環(huán)境,比如3.4,運(yùn)行conda create -n python34 python=3.4之后,conda僅安裝python 3.4相關(guān)的必須項(xiàng),如python, pip等,如果希望該環(huán)境像默認(rèn)環(huán)境那樣,安裝anaconda集合包,只需要:

# 在當(dāng)前環(huán)境下安裝anaconda包集合
conda install anaconda

# 結(jié)合創(chuàng)建環(huán)境的命令,以上操作可以合并為
conda create -n python34 python=3.4 anaconda
# 也可以不用全部安裝,根據(jù)需求安裝自己需要的package即可

設(shè)置國(guó)內(nèi)鏡像

如果需要安裝很多packages,你會(huì)發(fā)現(xiàn)conda下載的速度經(jīng)常很慢,因?yàn)锳naconda.org的服務(wù)器在國(guó)外。所幸的是,清華TUNA鏡像源有Anaconda倉(cāng)庫(kù)的鏡像,我們將其加入conda的配置即可:

# 添加Anaconda的TUNA鏡像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# TUNA的help中鏡像地址加有引號(hào),需要去掉

# 設(shè)置搜索時(shí)顯示通道地址
conda config --set show_channel_urls yes

執(zhí)行完上述命令后,會(huì)生成~/.condarc(Linux/Mac)或C:\Users\USER_NAME\.condarc文件,記錄著我們對(duì)conda的配置,直接手動(dòng)創(chuàng)建、編輯該文件是相同的效果。

Anaconda具有跨平臺(tái)、包管理、環(huán)境管理的特點(diǎn),因此很適合快速在新的機(jī)器上部署Python環(huán)境??偨Y(jié)而言,整套安裝、配置流程如下:

  • 下載Anaconda、安裝
  • 配置PATH(bashrc或環(huán)境變量),更改TUNA鏡像源
  • 創(chuàng)建所需的不用版本的python環(huán)境
  • Just Try!

cheat-sheet 下載:

Conda cheat sheet

參考資料

用anaconda保證64位和32位的python共存

背景
喵哥想在MFC中調(diào)用python腳本,在原來(lái)的代碼中包含一個(gè)只支持x86的庫(kù)文件(超級(jí)核心的文件),原本安裝的python是x64的,強(qiáng)行運(yùn)行程序會(huì)出現(xiàn)python頭文件里的函數(shù)無(wú)法解析的錯(cuò)誤。考慮到anaconda可以方便的管理python版本,所以采用anaconda來(lái)安裝32位的python。

Anaconda的一些命令

1.查看當(dāng)前工作平臺(tái):conda info
 

(base) C:\Users\Catlin Cao>conda info
 
     active environment : base
    active env location : F:\Anaconda3
            shell level : 1
       user config file : C:\Users\Catlin Cao\.condarc
 populated config files : C:\Users\Catlin Cao\.condarc
          conda version : 4.5.11
    conda-build version : 3.15.1
         python version : 3.7.0.final.0
       base environment : F:\Anaconda3  (writable)
           channel URLs : https://repo.anaconda.com/pkgs/main/win-32
                          https://repo.anaconda.com/pkgs/main/noarch
                          https://repo.anaconda.com/pkgs/free/win-32
                          https://repo.anaconda.com/pkgs/free/noarch
                          https://repo.anaconda.com/pkgs/r/win-32
                          https://repo.anaconda.com/pkgs/r/noarch
                          https://repo.anaconda.com/pkgs/pro/win-32
                          https://repo.anaconda.com/pkgs/pro/noarch
                          https://repo.anaconda.com/pkgs/msys2/win-32
                          https://repo.anaconda.com/pkgs/msys2/noarch
          package cache : F:\Anaconda3\pkgs32
                          C:\Users\Catlin Cao\AppData\Local\conda\conda\pkgs32
       envs directories : F:\Anaconda3\envs
                          C:\Users\Catlin Cao\AppData\Local\conda\conda\envs
                          C:\Users\Catlin Cao\.conda\envs
               platform : win-32
             user-agent : conda/4.5.11 requests/2.19.1 CPython/3.7.0 Windows/10 Windows/10.0.17134
          administrator : False
             netrc file : None
           offline mode : False

可見(jiàn)此時(shí)是64位平臺(tái)。

2.切換64位和32位:set CONDA_FORCE_32BIT=1是切換到32位;set CONDA_FORCE_32BIT= 是切換到64位。

需要注意的是,這樣切換環(huán)境對(duì)于已經(jīng)安裝的python沒(méi)有任何影響,即原先是64位的python,現(xiàn)在還是64位,所以需要切換到32位后再安裝python,并且安裝需要在prompt下進(jìn)行,在navigator里新建的python默認(rèn)是64位的。

3.安裝python:conda create -n env_name python=3.74,如果需要安裝一些包,只需要在name后加上對(duì)應(yīng)的包名稱。conda create -n env_name numpy matplotlib python=3.74。

例如我們想安裝python3.74 的32位版本

conda create -n python32 python=3.74

4.切換環(huán)境:conda activate env_name,conda deactivate env_name。

5.移除環(huán)境:conda remove -n env_name --all

6.安裝包:activate env_name,conda install pandas。安裝anaconda發(fā)行版的所有包:conda install anaconda,但是這樣會(huì)在所有環(huán)境都執(zhí)行這樣的操作,所以需要指定安裝環(huán)境:conda install -n env_name pandas

今天需要調(diào)用一個(gè)dll動(dòng)態(tài)函數(shù)庫(kù),但是本地的python是64位的,dll是32位的,直接調(diào)用會(huì)報(bào)錯(cuò)。

OSError: [WinError 193] %1 不是有效的 Win32 應(yīng)用程序。

 

python版本:3.6
anaconda對(duì)于python版本的管理還是很方便的,所以這里用anaconda才實(shí)現(xiàn)32位和64位python共存
1、打開anaconda prompt,輸入 conda info ,可以看到現(xiàn)在用的是64位的。

在這里插入圖片描述
2、切換成32位的 set CONDA_FORCE_32BIT=1 可以看出已經(jīng)切換成32位的了
在這里插入圖片描述
3、安裝32位的python3.6 conda create -n python32 python=3.6
在這里插入圖片描述
安裝完成后在anaconda3文件夾下面會(huì)有一個(gè)envs文件夾
在這里插入圖片描述
4、激活環(huán)境 conda activate python32 ,如果要取消 conda deactivate python32,如果要?jiǎng)h除環(huán)境 conda remove -n python32--all
5、如果要在pycharm中使用該環(huán)境
在這里插入圖片描述
點(diǎn)擊add local
在這里插入圖片描述
點(diǎn)擊ok就行了

以上的操作都是在Anaconda Prompt里,其實(shí)用Anaconda圖形界面(Navigator)安裝python會(huì)更加直觀,但是需要注意的是,無(wú)論你是否在Prompt里設(shè)置了32位的環(huán)境,用Navigator安裝的python都是64位的,大家可以試一下,有異議歡迎留言交流。

相關(guān)文章

  • Python實(shí)現(xiàn)CNN的多通道輸入實(shí)例

    Python實(shí)現(xiàn)CNN的多通道輸入實(shí)例

    今天小編就為大家分享一篇Python實(shí)現(xiàn)CNN的多通道輸入實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python高效編程技巧

    Python高效編程技巧

    我已經(jīng)使用Python編程有多年了,即使今天我仍然驚奇于這種語(yǔ)言所能讓代碼表現(xiàn)出的整潔和對(duì)DRY編程原則的適用。這些年來(lái)的經(jīng)歷讓我學(xué)到了很多的小技巧和知識(shí),大多數(shù)是通過(guò)閱讀很流行的開源軟件,如Django, Flask, Requests中獲得的
    2013-01-01
  • 使用python遍歷指定城市的一周氣溫

    使用python遍歷指定城市的一周氣溫

    本文主要介紹了使用python遍歷指定城市的一周氣溫的實(shí)現(xiàn)方法。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-03-03
  • 詳解Python調(diào)用系統(tǒng)命令的六種方法

    詳解Python調(diào)用系統(tǒng)命令的六種方法

    這篇文章主要介紹了詳解Python調(diào)用系統(tǒng)命令的六種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Python?functools凍結(jié)參數(shù)小技巧實(shí)現(xiàn)代碼簡(jiǎn)潔優(yōu)化

    Python?functools凍結(jié)參數(shù)小技巧實(shí)現(xiàn)代碼簡(jiǎn)潔優(yōu)化

    這篇文章主要為大家介紹了Python?functools凍結(jié)參數(shù)小技巧實(shí)現(xiàn)代碼簡(jiǎn)潔優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 在Python中操作列表之List.pop()方法的使用

    在Python中操作列表之List.pop()方法的使用

    這篇文章主要介紹了在Python中操作列表之List.pop()方法的使用,是Python入門中的基礎(chǔ)知識(shí),尤其該方法的返回值在Python編程中經(jīng)常被靈活運(yùn)用,需要的朋友可以參考下
    2015-05-05
  • python通過(guò)zabbix api獲取主機(jī)

    python通過(guò)zabbix api獲取主機(jī)

    這篇文章主要為大家詳細(xì)介紹了python通過(guò)zabbix api獲取主機(jī),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python如何使用replace做多字符替換

    python如何使用replace做多字符替換

    這篇文章主要介紹了python如何使用replace做多字符替換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python使用matplotlib給柱狀圖添加數(shù)據(jù)標(biāo)簽bar_label()

    Python使用matplotlib給柱狀圖添加數(shù)據(jù)標(biāo)簽bar_label()

    這篇文章主要介紹了Python使用matplotlib給柱狀圖添加數(shù)據(jù)標(biāo)簽bar_label(),記錄如何用使用matplotlib給柱狀圖添加數(shù)據(jù)標(biāo)簽,是以matplotlib.pyplot.bar_label()為例,需要的朋友可以參考一下
    2022-03-03
  • Python輸出大括號(hào)的幾種方法

    Python輸出大括號(hào)的幾種方法

    本文主要介紹了Python輸出大括號(hào)的幾種方法,通過(guò)print函數(shù)的字符串格式化、f-string、轉(zhuǎn)義字符等方式,可以在Python中輸出大括號(hào),感興趣的可以了解一下
    2024-01-01

最新評(píng)論