章工运维 章工运维
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)

章工运维

业精于勤,荒于嬉
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)
  • python

    • python基础

      • python基础知识
      • python基础较难的15个知识点
    • FastAPI

    • python每日练习脚本

    • python3给防火墙添加放行
    • python生成部署脚本
    • python将多个文件内容输出到一个文件中
    • 使用 Aligo 定时备份服务器文件
    • python监控日志文件并发送钉钉告警
    • python监控数据库脚本并发送钉钉告警
    • 使用python编写自动化发布脚本
    • 查询redis列表某个元素
    • centos7安装python3
    • python环境管理工具介绍
      • 安装Conda
      • 虚拟环境管理
      • 模块管理
      • 何时使用Conda
      • Miniconda概述
      • 安装Miniconda
      • 使用Miniconda
        • 添加镜像源
        • 管理虚拟环境
        • 管理软件包
        • 离线安装软件包
        • linux服务器安装python项目
    • conda安装和镜像源配置
    • pip更换国内源
    • python爬虫
    • python环境启动服务报错缺少glibc库版本
    • 监控目录或文件变化
    • 批量更改文件
    • python引用数据库
  • shell

  • go

  • 编程
  • python
章工运维
2024-01-11
目录

python环境管理工具介绍

# 什么是conda

Conda是Python中用于管理包和虚拟环境的一大利器。 使用Conda可以非常便利的使用数据科学相关的包,Conda可以帮助我们创建虚拟环境,从而方便的应用于多个项目中

a1209feb605ba25f.png

# 安装Conda

Anaconda实际上是一个软件的发行版,附带了Conda、python和150多个科学软件包及其相关的包。 Anaconda可以在Windows,MacOS以及Linux下进行安装,下载地址:https://www.anaconda.com/download/ ,国内下载镜像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/ 。 Anaconda是一个本身很大(大约500M),因为它附带了Python中最常见的数据科学包。如果您不需要所有的软件包,或者需要节省带宽或存储空间,那么也有Miniconda (opens new window),一个只包含conda和python的发行版。

安装完毕后,将Anaconda安装路径添加到系统PATH变量中:

PATH=${ANACODA_HOME}:${ANACODA_HOME}/Scripts:$PATH
1

**注意:**如果在安装Anaconda之前已经安装过Python并且已经到PATH变量中,最好是将之前安装的Python从环境变量中删除,避免与Anaconda中python混淆。

在命令行中执行命令:python,如果在进入的Python交互式环境中显示有Anaconda信息,则表明已经安装完毕,如下所示:

Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32

Warning:
This Python interpreter is in a conda environment, but the environment has
not been activated.  Libraries may fail to load.  To activate this environment
please see https://conda.io/activation

Type "help", "copyright", "credits" or "license" for more information.
>>>
1
2
3
4
5
6
7
8
9

# 虚拟环境管理

1.查看当前所有的虚拟环境列表

执行如下命令列出全部环境:

conda env list
# conda environments:
#
base                  *  D:\ProgramFiles\Anaconda3
myenv                    D:\ProgramFiles\Anaconda3\envs\myenv
1
2
3
4
5

此时,*号所在的行表示是当前所在的环境。

2.创建虚拟环境

conda create -n env_name list_of_packages
1

其中,-n后的参数env_name表示环境名称,接着可以跟着0个或多个包名称。

示例:创建一个名称为myenv的环境,同时在该环境中安装一个numpy包

conda create -n myenv numpy
1

当然,也可以只创建环境而不用安装包:conda create -n myenv

此外,在创建环境时,我们可以指定Python的版本,例如:conda create -n myenv python=2.7

3.进入虚拟环境

conda activate myenv
1

执行上述命令之后,就进入到名称为myenv的虚拟环境中了。
进入到虚拟环境之后,就可以执行安装模块,查看模块等操作了,如:conda list

4.离开虚拟环境

想要离开当前环境时,则只需要执行如下命令即可:

conda deactivate
1

5.删除虚拟环境

当某个环境我们不再需要时,可以直接执行如下命令来删除该环境:

conda env remove -n env_name
1

# 模块管理

Conda安装完成后,自动处于默认的conda虚拟环境中,此时可以使用如下命令查看在当前环境下得模块列表:

conda list
1

当然,也可以进入到某个指定的虚拟环境中后再执行包管理操作。

1.安装包

如下安装numpy模块:

conda install numpy
1

除了每次安装一个包外,我们还可以一次性安装多个包,例如:

conda install numpy pandas
1

此外,我们还可以安装某个指定版本的包:

conda install numpy=1.10
1

**说明:**使用conda安装指定包时,conda可以自动处理相关的包依赖。

2.删除某个包

conda remove package_name
1

3.升级某个包

conda upgrade package_name
1

4.升级全部包

conda upgrade --all
1

5.查看包列表

conda list
1

6.模糊查询包

conda search 'keywords'
1

还可以将环境中用到的包列表导出到文件中,然后将该文件包含在代码中,这允许其他人轻松加载代码的所有依赖项,这与pip freeze>requirements.txt具有类似的功能。

# 何时使用Conda

回到问题本源,什么时候需要使用Conda呢?

如果在项目开发和部署过程中遇到如下场景,都可以考虑使用Conda(以依赖numpy模块为例说明):

1.在同一台机器上需要同时安装两个版本的numpy,可以通过Conda为每个版本的numpy创建一个虚拟环境,然后在对应环境进行开发或部署。
2.在同一台机器上有多个项目运行,但是可能有一些项目需要用Python3运行,同时另外一些项目需要用Python2运行,同时安装这两个版本的Python可能会导致很多混乱和错误。因此,最好是有单独的虚拟环境来管理和使用,这也可以通过Conda来解决。

**总结为一句话:**在需要对Python环境或模块版本进行隔离的时候都可以使用Conda。

原文链接 (opens new window)

# Miniconda概述

Miniconda是什么? 要解释Miniconda是什么,先要弄清楚什么是Anaconda (opens new window),它们之间的关系是什么?
而要知道Anaconda是什么,最先要明白的是搞清楚什么是Conda,参考:Conda简单教程 (opens new window)。 一言以蔽之,Conda是Python中用于管理依赖包和虚拟环境的工具,Anaconda是一个带有Conda工具的软件包(附带了Conda、python和150多个科学软件包及其相关的包),而Miniconda是一个Anaconda的轻量级替代,默认只包含了Python和Conda。 也就是说,安装了Miniconda,就可以直接使用Python和Conda了。

为什么要使用Miniconda呢?不使用Miniconda难道不可以吗? 当然可以不用Miniconda,没有Miniconda也不妨碍使用Python,实际上没有Minicoda在Python中也是可以实现依赖包和虚拟环境管理的。 Python自带的包管理工具为pip,虚拟环境管理可以使用virtualenv(需要单独安装:pip install virtualenv),但是在这么一些情况下使用Miniconda能够比较方便的解决问题。 场景1:系统本身已经存在了Python2(大多数Linux系统都会自带),但是应用程序运行环境需要Python3,此时使用Miniconda可以在不直接升级系统本身自带的Python2的情况下使用Python3。当然直接升级系统本身自带的Python2为Python3也是可以的,但是存在一定的危险性,这样做可能会破坏某些系统工具的运行环境。比如在产线环境需要临时使用Python3环境,是不太可能允许直接去升级系统自带的Python2的。关于升级Python2到Python3可以参考:Python2升级到Python3 (opens new window)。

场景2:系统需要存在多个环境,便于在Python2和Python3之间来回切换,使用Miniconda能很好地解决这个需求。

场景3:系统本身不带Python,手动安装Python可能比较慢,直接安装Miniconda即可使用Python环境。

# 安装Miniconda

Miniconda可以从国内镜像站下载,比如:清华大学开源软件镜像站 (opens new window)。 至于需要下载哪个版本的Miniconda,需要根据使用Python版本的需求而定,详见:Miniconda (opens new window),而Anaconda支持的Python版本信息则详见传送门 (opens new window)。

# 系统本身的Python版本为:3.6.9
$ python -V
Python 3.6.9
#官网地址
https://docs.anaconda.com/miniconda/
$ wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda-3.9.1-Linux-x86_64.sh
$ bash Miniconda-3.9.1-Linux-x86_64.sh
#指定程序目录
bash Miniconda-3.9.1-Linux-x86_64.sh -b -u -p /usr/local/miniconda3
1
2
3
4
5
6
7
8
9

根据提示信息一路安装完毕,最后会将miniconda添加到环境变量PATH中。

# added by Miniconda 3.9.1 installer
export PATH="/home/zhangsan/miniconda/bin:$PATH"
1
2

说明: 在不同的Linux发行版上安装Miniconda后,添加conda到PATH变量的方式可能有所不同,但通常都是在~/.bashrc文件中实现的。

安装完毕之后重新登陆系统,查看conda信息:

$ conda info
Current conda install:

             platform : linux-64
        conda version : 3.9.1
  conda-build version : not installed
       python version : 2.7.9.final.0
     requests version : 2.25.0
     root environment : /home/zhangsan/miniconda  (writable)
  default environment : /home/zhangsan/miniconda
     envs directories : /home/zhangsan/miniconda/envs
        package cache : /home/zhangsan/miniconda/pkgs
         channel URLs : http://repo.continuum.io/pkgs/free/linux-64/
                        http://repo.continuum.io/pkgs/free/noarch/
                        http://repo.continuum.io/pkgs/pro/linux-64/
                        http://repo.continuum.io/pkgs/pro/noarch/
          config file : None
    is foreign system : False
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

查看Python信息:

# 注意:此时查看Python版本信息时已经是Conda自带的默认Python版本了
$ python -V
Python 2.7.9 :: Continuum Analytics, Inc.
1
2
3

执行conda -h可以查看详细用法。

说明: 当把conda添加到PATH变量时,登录系统后会进入到conda中激活的环境中,此时执行python -V查看到的版本信息是conda环境中的Python。如果不再使用conda了,可以将conda从PATH变量中移除即可,如下所示:

$ cat .bashrc
# added by Miniconda 3.9.1 installer
# export PATH="/home/zhangsan/miniconda/bin:$PATH"
1
2
3

# 使用Miniconda

# 添加镜像源

安装完Miniconda之后首先要做的就是添加镜像源,便于快速下载相应模块包。
修改~/.condarc文件内容如下:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
  - https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
  - https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
  - https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
  - https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
  - https://mirrors.ustc.edu.cn/anaconda/cloud/
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  ustc: http://mirrors.ustc.edu.cn/anaconda/pkgs/free/
  alibaba : https://mirrors.aliyun.com/pypi/simple/

ssl_verify: true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

修改完毕并保存文件内容之后执行conda clean -i清除索引缓存,保证用的是镜像站提供的索引。

# 管理虚拟环境

# 查看环境信息,当前环境会通过一个星号 (*) 标识
$ conda env list
# conda environments:
#
root                  *  /home/zhangsan/miniconda
1
2
3
4
5

如上,默认的环境名称为root。

创建虚拟环境:

# 新建一个基于Python 3.6的环境,名称为myenv
$ conda create -n myenv python=3.6.2
$ conda env list
# conda environments:
#
myenv                    /home/zhangsan/miniconda/envs/myenv
root                  *  /home/zhangsan/miniconda
1
2
3
4
5
6
7

创建完新环境之后查看环境列表,默认还是root环境。

选择虚拟环境:

$ source activate myenv
discarding /home/zhangsan/miniconda/bin from PATH
prepending /home/zhangsan/miniconda/envs/myenv/bin to PATH

# 在指定环境中查看Python版本时正是创建环境时指定的版本
$ python -V
Python 3.6.2 :: Continuum Analytics, Inc.
1
2
3
4
5
6
7

退出虚拟环境:

# 退出当前所处的虚拟环境
$ source deactivate
discarding /home/zhangsan/miniconda/envs/myenv/bin from PATH

# 再次查看Python版本时就是conda默认root环境的Python版本
$ python -V
Python 2.7.9 :: Continuum Analytics, Inc.
1
2
3
4
5
6
7

删除虚拟环境:

# 删除指定名称的虚拟环境
$ conda env remove -n myenv
$ conda env list
# conda environments:
#
root                  *  /home/zhangsan/miniconda
1
2
3
4
5
6

# 管理软件包

# 查看在当前所在虚拟环境中已经安装的包
$ conda list

# 在当前所在的虚拟环境中安装软件包
$ conda install <package_name>

# 在指定虚拟环境中安装包
$ conda install --name <env_name> <package_name>

# 卸载当前所在虚拟环境下的指定包
$ conda remove <package_name>

# 卸载指定虚拟环境下的指定包
$ conda remove --name <env_name> <package_name>

# 升级当前所在虚拟环境下的指定包
$ conda update <package_name>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

说明: 在conda管理的虚拟环境中,软件包的管理除了可以使用conda实现,同样还可以直接使用pip(使用pip安装的软件包在对应虚拟环境目录中,与其他虚拟环境是隔离开的,互不影响)。 但是使用pip安装的软件包后,在使用conda list查看时会提示Could not extract name and version,例如:

# 使用conda无法正常安装selenium,使用pip安装selenium后执行`conda list`显示如下信息
(myenv)[root@VM-24-10-centos ~]# conda  list
# packages in environment at /root/miniconda/envs/myenv:
#
Could not extract name and version from: 'Package    Version'
Could not extract name and version from: '---------- ---------'
Could not extract name and version from: 'certifi    2016.2.28'
Could not extract name and version from: 'pip        21.3.1'
Could not extract name and version from: 'selenium   3.141.0'
Could not extract name and version from: 'setuptools 36.4.0'
Could not extract name and version from: 'urllib3    1.26.12'
Could not extract name and version from: 'wheel      0.29.0'
certifi                   2016.2.28                py36_0    defaults
openssl                   1.0.2l                        0    defaults
pip                       9.0.1                    py36_1    defaults
python                    3.6.2                         0    defaults
readline                  6.2                           2    <unknown>
setuptools                36.4.0                   py36_1    defaults
sqlite                    3.13.0                        0    defaults
tk                        8.5.18                        0    defaults
wheel                     0.29.0                   py36_0    defaults
xz                        5.2.3                         0    defaults
zlib                      1.2.11                        0    defaults
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 离线安装软件包

#查看软件版本
/home/zhangsan/miniconda/envs/myenv/bin/python -m pip list | grep redis
#卸载软件包
/home/zhangsan/miniconda/envs/myenv/bin/python -m pip uninstall redis
#安装软件包
/home/zhangsan/miniconda/envs/myenv/bin/python -m pip install redis-3.5.3.tar.gz
#python源代码依赖包下载地址
https://pypi.org/project
#解压依赖包安装方式
cd redis-3.5.3
/home/zhangsan/miniconda/envs/myenv/bin/python setup.py install
1
2
3
4
5
6
7
8
9
10
11

# linux服务器安装python项目

打包Python项目的依赖

pip3 freeze > requirements.txt

1
2

安装依赖

 pip3 install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com -r requirements.txt

1
2

运行程序

python3 main.py
1

原文链接 (opens new window)

微信 支付宝
上次更新: 2024/08/16, 14:00:01

← centos7安装python3 conda安装和镜像源配置→

最近更新
01
shell脚本模块集合
05-13
02
生活小技巧(认知版)
04-29
03
生活小技巧(防骗版)
04-29
更多文章>
Theme by Vdoing | Copyright © 2019-2025 | 点击查看十年之约 | 鄂ICP备2024072800号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式