【Python相关】使用conda进行python环境管理


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/nlp/291/

conda

使用conda进行python环境管理

Anaconda、conda、pip、virtualenv的区别

(1)Anaconda

Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。

(2)conda

conda是包及其依赖项和环境的管理工具。
适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
适用平台:Windows, macOS, Linux
用途

① 快速安装、运行和升级包及其依赖项。
② 在计算机中便捷地创建、保存、加载和切换环境。

如果你需要的包要求不同版本的Python,你无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python版本,同时继续在你常规的环境中使用你常用的Python版本。——Conda官方网站

▪ conda为Python项目而创造,但可适用于上述的多种语言。
▪ conda包和环境管理器包含于Anaconda的所有版本当中。
(3)pip

pip是用于安装和管理软件包的包管理器。
pip编写语言:Python。
Python中默认安装的版本

① Python 2.7.9及后续版本:默认安装,命令为 pip
② Python 3.4及后续版本:默认安装,命令为 pip3

pip名称的由来:pip采用的是递归缩写进行命名的。其名字被普遍认为来源于2处:

① “Pip installs Packages”(“pip安装包”)
② “Pip installs Python”(“pip安装Python”)
(4)virtualenv

virtualenv是用于创建一个独立的Python环境的工具。
解决问题
当一个程序需要使用Python 2.7版本,而另一个程序需要使用Python 3.6版本,如何同时使用这两个程序?如果将所有程序都安装在系统下的默认路径,如:/usr/lib/python2.7/site-packages,当不小心升级了本不该升级的程序时,将会对其他的程序造成影响。
如果想要安装程序并在程序运行时对其库或库的版本进行修改,都会导致程序的中断。
在共享主机时,无法在全局 site-packages 目录中安装包。
▪ virtualenv将会为它自己的安装目录创建一个环境,这并不与其他virtualenv环境共享库;同时也可以选择性地不连接已安装的全局库。

(5)pip 与 conda 比较

依赖项检查
▪ pip:

① 不一定会展示所需其他依赖包。
② 安装包时或许会直接忽略依赖项而安装,仅在结果中提示错误。

▪ conda:

① 列出所需其他依赖包。
② 安装包时自动安装其依赖项。
③ 可以便捷地在包的不同版本中自由切换。

环境管理

▪ pip:维护多个环境难度较大。
▪ conda:比较方便地在不同环境之间进行切换,环境管理较为简单。

对系统自带Python的影响

▪ pip:在系统自带Python中包的更新/回退版本/卸载将影响其他程序。
▪ conda:不会影响系统自带Python。

适用语言

▪ pip:仅适用于Python。
▪ conda:适用于Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, FORTRAN。
(6)conda与pip、virtualenv的关系

conda结合了pip和virtualenv的功能。

使用conda进行python环境管理

(1)创建虚拟环境
创建环境

首先创建一个环境名称为test,python版本号为3.8的虚拟环境,如下所示:

conda create --name [环境名称] python=[python版本号,如3.6、3.7、3.8、3.9、3.10]
例如:
conda create --name test python=3.8
输出如下:
(base) 用户名@主机名:~# conda create --name test python=3.8                                                                                                                           
Collecting package metadata (current_repodata.json): done                                                                                                                                 
Solving environment: done                                                                                                                                                                 

## Package Plan ##

  environment location: /root/anaconda3/envs/test

  added / updated specs:
    - python=3.8


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    certifi-2022.9.24          |   py38h06a4308_0         154 KB
    libffi-3.4.2               |       h6a678d5_6         136 KB
    pip-22.2.2                 |   py38h06a4308_0         2.3 MB
    python-3.8.15              |       h7a1cb2a_2        20.1 MB
    setuptools-65.5.0          |   py38h06a4308_0         1.1 MB
    ------------------------------------------------------------
                                           Total:        23.8 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main 
  _openmp_mutex      pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu 
  ca-certificates    pkgs/main/linux-64::ca-certificates-2022.10.11-h06a4308_0 
  certifi            pkgs/main/linux-64::certifi-2022.9.24-py38h06a4308_0 
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1 
  libffi             pkgs/main/linux-64::libffi-3.4.2-h6a678d5_6 
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1 
  libgomp            pkgs/main/linux-64::libgomp-11.2.0-h1234567_1 
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1 
  ncurses            pkgs/main/linux-64::ncurses-6.3-h5eee18b_3 
  openssl            pkgs/main/linux-64::openssl-1.1.1s-h7f8727e_0 
  pip                pkgs/main/linux-64::pip-22.2.2-py38h06a4308_0 
  python             pkgs/main/linux-64::python-3.8.15-h7a1cb2a_2 
  readline           pkgs/main/linux-64::readline-8.2-h5eee18b_0 
  setuptools         pkgs/main/linux-64::setuptools-65.5.0-py38h06a4308_0 
  sqlite             pkgs/main/linux-64::sqlite-3.40.0-h5082296_0 
  tk                 pkgs/main/linux-64::tk-8.6.12-h1ccaba5_0 
  wheel              pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0 
  xz                 pkgs/main/linux-64::xz-5.2.8-h5eee18b_0 
  zlib               pkgs/main/linux-64::zlib-1.2.13-h5eee18b_0 


Proceed ([y]/n)? y


Downloading and Extracting Packages
                                                                                                                                                                                          
Preparing transaction: done                                                                                                                                                               
Verifying transaction: done                                                                                                                                                               
Executing transaction: done                                                                                                                                                               
#                                                                                                                                                                                         
# To activate this environment, use
#
#     $ conda activate test
#
# To deactivate an active environment, use
#
#     $ conda deactivate
激活环境

然后激活该环节
使用如下命令:

conda activate test
输出如下:
(base) 用户名@主机名:~# conda activate test
(test) 用户名@主机名:~# 
查看环境

使用pip list或者conda list查看环境

pip list
conda list
输出如下:
(test) 用户名@主机名:~# pip list
Package    Version
---------- ---------
certifi    2022.9.24
pip        22.2.2
setuptools 65.5.0
wheel      0.37.1
(test) 用户名@主机名:~# conda list
# packages in environment at /root/anaconda3/envs/test:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                        main  
_openmp_mutex             5.1                       1_gnu  
ca-certificates           2022.10.11           h06a4308_0  
certifi                   2022.9.24        py38h06a4308_0  
ld_impl_linux-64          2.38                 h1181459_1  
libffi                    3.4.2                h6a678d5_6  
libgcc-ng                 11.2.0               h1234567_1  
libgomp                   11.2.0               h1234567_1  
libstdcxx-ng              11.2.0               h1234567_1  
ncurses                   6.3                  h5eee18b_3  
openssl                   1.1.1s               h7f8727e_0  
pip                       22.2.2           py38h06a4308_0  
python                    3.8.15               h7a1cb2a_2  
readline                  8.2                  h5eee18b_0  
setuptools                65.5.0           py38h06a4308_0  
sqlite                    3.40.0               h5082296_0  
tk                        8.6.12               h1ccaba5_0  
wheel                     0.37.1             pyhd3eb1b0_0  
xz                        5.2.8                h5eee18b_0  
zlib                      1.2.13               h5eee18b_0  

使用conda info --envs查看环境

(test) 用户名@主机名:~# conda  info --envs
# conda environments:
#
base                     /root/anaconda3
test                  *  /root/anaconda3/envs/test
退出环境
conda deactivate
(2)生成此环境对应的jupyter lab选项卡;
安装ipykernel

使用pip安装ipykernel

pip install ipykernel
安装jupyter menus
python -m ipykernel install --user --name [环境名称] --display-name "[展示名称]"
例如:
python -m ipykernel install --user --name test --display-name "Test"
测试使用的kernel的位置

在jupyter notebook或者jupyter lab中选择Test kernel,输入下面代码,看看是否是环境的安装路径

import sys
print (sys.executable)

参考文献

[1] anaconda https://baike.baidu.com/item/anaconda/20407441
https://www.anaconda.com
[2] 初学 Python 者自学 Anaconda 的正确姿势是什么?https://zhuanlan.zhihu.com/p/32925500
[3] Anaconda介绍、安装及使用教程 https://zhuanlan.zhihu.com/p/32925500
[4] conda常用命令汇总 https://blog.csdn.net/raelum/article/details/125109819
[5] Conda介绍 https://blog.csdn.net/koflance/article/details/78582737
[6] 用conda进行python虚拟环境创建、管理以及jupyter和pycharm使用此环境 https://zhuanlan.zhihu.com/p/64100305


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chaos_Wang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值