99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀anaconda 使用的一些體驗與困惑
anaconda 使用的一些體驗與困惑
2020-04-20
收藏

1. channels 使用

需要注意的是做生信分析的童鞋使用 conda 環(huán)境時一定要特別注意 conda channels 的設置,濫用 channels 很有可能會導致你的軟件升降級(甚至環(huán)境)錯亂。推薦設置如下(~/.condarc):


channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro   - defaults show_channels_urls: true
  • mirrors.tuna.tsinghua.edu.cn/anaconda 是清華大學提供了一個 conda 的鏡像;
  • mirrors.ustc.edu.cn/anaconda 是中科大 conda 鏡像,有需要的也可以使用;
  • 生信軟件 channel:mirrors.tu na.tsing hua.edu.cn/ana conda/cloud/bioc onda;

從 2019.04 起清華大學和中科大宣布停止 Anaconda 鏡像服務,但是出于教育科研機構(gòu)使用的前提,在 2019-05-15 清華大學又宣布重新恢復了 Anaconda 鏡像!

因此原來使用國內(nèi)鏡像的 conda 可以根據(jù)自身需求決定是否需要變更新的 channels:


channels:
  - conda-forge   - bioconda   - main   - free   - r   - pro   - defaults show_channels_urls: true

2. 軟件安裝使用

conda 環(huán)境下的軟件盡量使用 conda、pip 命令去安裝。但同時也產(chǎn)生了一個問題,即 conda 中安裝了 R,有些使用了 install.packages(),install_github,biocLite 等方式安裝的 R 包,在環(huán)境遷移的時候,這些包如何遷移?

3. 環(huán)境激活

conda 4.6.x 切換環(huán)境使用的是:


$ source activate bio-base

conda 4.7.x 后切換環(huán)境變成了:


# To activate this environment, use: > conda activate bio-base  # To deactivate an active environment, use: > conda deactivate

問題是,conda-4.7.x 使用推薦的命令切換環(huán)境,還要你 init 初始化一下 conda,不想 init 的話可以用回 4.6.x 的方式切換環(huán)境:


$ conda --versionconda 4.7.5$ conda activate bio-baseCommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.To initialize your shell, run    $ conda init <SHELL_NAME>Currently supported shells are:  - bash  - fish  - tcsh  - xonsh  - zsh  - powershellSee 'conda init --help' for more information and options.IMPORTANT: You may need to close and restart your shell after running 'conda init'.$ source activate bio-base(bio-base) shenweiyan@ecs-steven 10:49:59 /home/shenweiyan$ which python/Bioinfo/Pipeline/SoftWare/Anaconda3/envs/bio-base/bin/pythonsource deactivate bio-baseDeprecationWarning: 'source deactivate' is deprecated. Use 'conda deactivate'.shenweiyan@ecs-steven 11:03:40 /home/shenweiyan$ source activate bio-base(bio-base) shenweiyan@ecs-steven 11:03:50 /home/shenweiyan$ conda deactivate(bio-base) shenweiyan@ecs-steven  11:03:57 /home/shenweiyan$

4. 環(huán)境導出與恢復

使用 conda 命令安裝的包,都可以使用下面的命令導出依賴包/環(huán)境并批量恢復:


# To create a requirements.txt file # Gives you list of packages used for the environment conda list  # Save all the info about packages to your folder conda list -e > requirements.txt  # To export environment file activate <environment-name>
conda env export > <environment-name>.yml # For other person to use the environment conda env create -f <environment-name>.yml # Install via `conda` directly. # This will fail to install all dependencies. If one fails, all dependencies will fail to install. conda install --yes --file requirements.txt # To go around issue above, one can iterate over all lines in the requirements.txt file. while read requirement; do conda install --yes $requirement; done < requirements.txt

5. R 與 R 包安裝

R Essentials 軟件包包含 IRKernel 和 80 多種最流行的數(shù)據(jù)科學 R 軟件包,包括 dplyr,shiny,ggplot2,tidyr,caret 和 nnet 等。

5.1 biocLite

Bioconductor 鏡像使用幫助:

  • Bioconductor 鏡像源配置文件之一是 .Rprofile (linux 下位于 ~/.Rprofile )。在文末添加如下語句:

#清華大學開源鏡像 options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
  • 也可以在安裝過程中指定鏡像:

source("http://bioconductor.org/biocLite.R") #指定一個離你最近的國內(nèi)鏡像 options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/") biocLite("包名")

biocLite 包批量安裝:


> source("http://bioconductor.org/biocLite.R") > options(BioC_mirror="http://mirrors.tuna.tsinghua.edu.cn/bioconductor") > data = read.table("r-biocLite.txt",  header=T, check.names=F, quote="") > head(data)   biocLite_Packages_Name
1                RSQLite
2               KEGGREST
3                    png
4                   Rcpp
5                 digest
6          AnnotationDbi > soft = as.vector(data[,1]) > biocLite(soft)

5.2 install.packages

install.packages()所有 R 包:


> data = read.table("r-packages.txt",  header=T, check.names=F, quote="")
> soft = as.vector(data[,1])
> install.packages(soft)

6. 特別注意的軟件

6.1 gcc

對于使用 conda install --yes --file requirements.txt 重裝某一個環(huán)境的所有軟件時,如果軟件中包含了 gcc,安裝了 R 后,在使用 R 時會可能會引發(fā)錯誤:


/path/to/SoftWare/Anaconda/v2/lib/R/bin/exec/R: /path/to/SoftWare/Anaconda/v2/lib/R/bin/exec/../../lib/../../libgomp.so.1: version `GOMP_4.0' not found (required by /path/to/SoftWare/Anaconda/v2/lib/R/bin/exec/../../lib/libR.so)

6.2 glibc

glibc 是 GNU 發(fā)布的 libc 庫,即 c 運行庫。glibc 是 linux 系統(tǒng)中最底層的 api,幾乎其它任何運行庫都會依賴于 glibc。glibc 除了封裝 linux 操作系統(tǒng)所提供的系統(tǒng)服務外,它本身也提供了許多其它一些必要功能服務的實現(xiàn)。由于 glibc 囊括了幾乎所有的 UNIX 通行的標準,可以想見其內(nèi)容包羅萬象。而就像其他的 UNIX 系統(tǒng)一樣,其內(nèi)含的檔案群分散于系統(tǒng)的樹狀目錄結(jié)構(gòu)中,像一個支架一般撐起整個作業(yè)系統(tǒng)。在 GNU/Linux 系統(tǒng)中,其 C 函式庫發(fā)展史點出了 GNU/Linux 演進的幾個重要里程碑,用 glibc 作為系統(tǒng)的 C 函式庫,是 GNU/Linux 演進的一個重要里程碑。

有一些軟件對于 glibc 的版本會有要求,如 cnvnator-0.3.3 要求 glibc >= 2.14。雖然在 anaconda 中有很多 channel 都提供了 glibc,但千萬注意一定要注意不要輕易去安裝,否則有很大的概率會導致整個環(huán)境掛掉,甚至會導致當前環(huán)境中的 conda、python 出現(xiàn)動態(tài)庫混亂錯誤,恢復起來相當麻煩!

我在《一次"膽戰(zhàn)心驚"的真實集群運維經(jīng)歷》記錄了 gblic 的一些集群吐血經(jīng)歷,感興趣的可以了解一下。

7. 什么時候使用 Anaconda

對于 Anaconda(conda) 軟件安裝以及依賴解決的原理,我對這個黑盒子表示一頭霧水。真實的情況是,如果在一個環(huán)境中安裝了幾百個軟件(包),再去新裝軟件,這時候 Anaconda 常常會卡在 Collecting package metadata 和 Solving environment 過程中,甚至一個晚上都沒法解決環(huán)境的依賴。

conda 官方說他們在 conda-4.7 中花了很多的精力去提升了 conda 的速度(參考官方文章:《How We Made Conda Faster in 4.7》),但從 4.6 升級到 4.7 過程很容易導致環(huán)境崩潰,修復起來極其麻煩(反正我折騰了一個晚上都沒能把我的 base 給恢復回來,吐血的經(jīng)歷)!

對于新手而言,Anaconda 的確是非常簡單易用,如果對于多用戶的服務器端,或者是提供公共使用的軟件庫是否需要采用 Anaconda,個人覺得的確需要慎重考慮一下,最起碼需要考慮:

  • 是否需要根據(jù)流程劃分環(huán)境?如果每個流程都需要使用 Python+R+Perl,每個環(huán)境都安裝這三個軟件(包),如何避免空間浪費?
  • 需要考慮如何備份和恢復環(huán)境。萬一某個環(huán)境崩潰,有什么快速替代的方案而不影響業(yè)務。

或許還有更多的問題,這里沒有列出來,如果大家有什么更好的想法或者建議,也歡迎留言交流。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }