【编程基础之Python】3、创建Python虚拟环境

news2024/11/15 10:29:36

【编程基础之Python】3、创建Python虚拟环境

  • 创建Python虚拟环境
    • 为什么需要虚拟环境
    • Windows上的Anaconda创建虚拟环境
      • conda 命令
      • conda env 命令
      • 创建虚拟环境
      • 切换虚拟环境
      • 验证虚拟环境
    • Linux上的Anaconda创建虚拟环境
      • 创建虚拟环境
      • 切换虚拟环境
      • 验证虚拟环境
  • 总结

创建Python虚拟环境

为什么需要虚拟环境

根据实际开发需求,我们会不断的更新或卸载项目中依赖的Python类库,直接对我们的Python环境操作会让我们的开发环境和项目造成很多不必要的麻烦,并且当我们同时开发多个项目的时候,可能每个项目依赖的同一个Python库的版本还不一样,就会造成版本冲突,管理相当混乱。而虚拟环境独立于真实环境存在,并且可以同时拥有多个虚拟环境,每个虚拟环境都可以安装不同的类库、不同版本的类库,对项目的依赖和版本的控制有着非常重要的作用。

Windows上的Anaconda创建虚拟环境

通过Windows的开始菜单,打开Anaconda Prompt(anaconda3)。可以看到命令提示符前面的(base)符号,说明当前是Anaconda的base虚拟环境。

image-20230210233047438

通过命令:

conda env list

可以列出当前系统中拥有的虚拟环境。从响应结果知道,当前只有一个base环境,其目录就是anaconda的安装目录。

image-20230210233300075

conda 命令

Anaconda提供的conda是一个用来管理和部署应用、环境和包的工具,通过输入conda直接回车可以打印出所有可用的命令以及说明信息。

(base) C:\Users\wux_labs>conda
usage: conda-script.py [-h] [-V] command ...

conda is a tool for managing and deploying applications, environments and packages.

Options:

positional arguments:
  command
    clean        Remove unused packages and caches.
    compare      Compare packages between conda environments.
    config       Modify configuration values in .condarc. This is modeled after the git config command. Writes to the user .condarc file (C:\Users\wux_labs\.condarc) by default. Use the --show-sources flag to display all identified configuration locations on your computer.
    create       Create a new conda environment from a list of specified packages.
    info         Display information about current conda install.
    init         Initialize conda for shell interaction.
    install      Installs a list of packages into a specified conda environment.
    list         List installed packages in a conda environment.
    package      Low-level conda package utility. (EXPERIMENTAL)
    remove       Remove a list of packages from a specified conda environment.
    rename       Renames an existing environment.
    run          Run an executable in a conda environment.
    search       Search for packages and display associated information.The input is a MatchSpec, a query language for conda packages. See examples below.
    uninstall    Alias for conda remove.
    update       Updates conda packages to the latest compatible version.
    upgrade      Alias for conda update.
    notices      Retrieves latest channel notifications.

optional arguments:
  -h, --help     Show this help message and exit.
  -V, --version  Show the conda version number and exit.

conda commands available from other packages:
  build
  content-trust
  convert
  debug
  develop
  env
  index
  inspect
  metapackage
  pack
  render
  repo
  server
  skeleton
  token
  verify

(base) C:\Users\wux_labs>

常用的命令有:

  • clean,清理不需要使用的包和缓存
  • compare,比较两个虚拟环境的包信息
  • config,用来配置Anaconda的配置信息,默认配置在文件.condarc中。 修改后的配置在用户目录下的.condarc文件中,比如C:\Users\wux_labs\.condarc
  • create,基于一些特定的包创建一个虚拟环境
  • info,显示当前Anaconda的安装信息
  • init,初始化Anaconda的Shell配置
  • install,在指定的虚拟环境中安装一些包
  • list,列出虚拟环境中已经安装了的包
  • remove,从一个虚拟环境中移除一些包
  • rename,重命名一个已存在的虚拟环境
  • run,在一个虚拟环境中运行可执行程序
  • search,搜索包并显示相关信息
  • uninstall ,conda remove的一个别名,从一个虚拟环境中移除一些包
  • update,将Anaconda的包更新到兼容的最新版本
  • upgrade,conda update的别名

同时,从其他包中还提供了一些其他的命令。

conda env 命令

用来管理系统中的虚拟环境。

conda env 命令的使用方法为:

usage: conda-env-script.py [-h] {create,export,list,remove,update,config} ...

positional arguments:
  {create,export,list,remove,update,config}
    create              Create an environment based on an environment definition file. If using an environment.yml file (the default), you can name the environment in the first line of the file with 'name:envname' or you can specify the environment name in the CLI command using the -n/--name argument. The name specified in the CLI will override the name specified in the environment.yml file. Unless you are in the directory containing the environment definition file, use -f to specify the file path of the environment definition file you want to use.
    export              Export a given environment
    list                List the Conda environments
    remove              Remove an environment
    update              Update the current environment based on environment file
    config              Configure a conda environment

optional arguments:
  -h, --help            Show this help message and exit.

常用的有:

  • create 创建虚拟环境
  • list 列出已有的虚拟环境
  • remove 移出虚拟环境

要创建一个新的虚拟环境,可以直接通过命令进行创建:

conda create --name env_name python=x.x

--name可简写为-n即:

conda create -n env_name python=x.x

创建虚拟环境

通过命令创建一个虚拟环境。

conda create -n PythonBasic python=3.9

image-20230211000411618

输入y确认需要安装的包,继续完成虚拟环境的创建。

image-20230211000522937

虚拟环境创建完成后,再次通过命令查看当前系统中的虚拟环境信息,*表示当前激活的虚拟环境,当前是base环境。

image-20230211001406208

切换虚拟环境

虚拟环境创建完成后,可以通过以下命令激活虚拟环境:

conda activate PythonBasic

虚拟环境激活以后,命令提示符前面的环境符号会变成PythonBasic

image-20230211000816434

并且通过命令可以看到当前激活的是PythonBasic环境。

image-20230211001620143

如果要退出当前虚拟环境,可以使用命令:

conda deactivate

验证虚拟环境

通过命令conda list或者pip list可以查看当前虚拟环境中安装好的包。

image-20230211001118718

两者的区别在于:

  • conda list,会列出当前虚拟环境中安装的包,以及关联虚拟环境中安装的包
  • pip list,仅会列出当前虚拟环境中安装的包

使用python命令进入Python解释器环境,编写代码执行验证。

print("Hello Python Basic")

image-20230211002315472

Linux上的Anaconda创建虚拟环境

创建虚拟环境

在Linux系统上创建虚拟环境的命令与Windows系统上的命令一致。

conda create -n PythonBasic python=3.9

创建过程为:

(base) wux_labs@wux-labs-vm:~$ conda create -n PythonBasic python=3.9
Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 22.9.0
  latest version: 23.1.0

Please update conda by running

    $ conda update -n base -c defaults conda



## Package Plan ##

  environment location: /home/wux_labs/anaconda3/envs/PythonBasic

  added / updated specs:
    - python=3.9


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    ca-certificates-2023.01.10 |       h06a4308_0         120 KB
    certifi-2022.12.7          |   py39h06a4308_0         150 KB
    libffi-3.4.2               |       h6a678d5_6         136 KB
    ncurses-6.4                |       h6a678d5_0         914 KB
    openssl-1.1.1s             |       h7f8727e_0         3.6 MB
    pip-22.3.1                 |   py39h06a4308_0         2.7 MB
    python-3.9.16              |       h7a1cb2a_0        25.0 MB
    readline-8.2               |       h5eee18b_0         357 KB
    setuptools-65.6.3          |   py39h06a4308_0         1.1 MB
    sqlite-3.40.1              |       h5082296_0         1.2 MB
    tzdata-2022g               |       h04d1e81_0         114 KB
    xz-5.2.10                  |       h5eee18b_1         429 KB
    zlib-1.2.13                |       h5eee18b_0         103 KB
    ------------------------------------------------------------
                                           Total:        35.9 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main None
  _openmp_mutex      pkgs/main/linux-64::_openmp_mutex-5.1-1_gnu None
  ca-certificates    pkgs/main/linux-64::ca-certificates-2023.01.10-h06a4308_0 None
  certifi            pkgs/main/linux-64::certifi-2022.12.7-py39h06a4308_0 None
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.38-h1181459_1 None
  libffi             pkgs/main/linux-64::libffi-3.4.2-h6a678d5_6 None
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-11.2.0-h1234567_1 None
  libgomp            pkgs/main/linux-64::libgomp-11.2.0-h1234567_1 None
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-11.2.0-h1234567_1 None
  ncurses            pkgs/main/linux-64::ncurses-6.4-h6a678d5_0 None
  openssl            pkgs/main/linux-64::openssl-1.1.1s-h7f8727e_0 None
  pip                pkgs/main/linux-64::pip-22.3.1-py39h06a4308_0 None
  python             pkgs/main/linux-64::python-3.9.16-h7a1cb2a_0 None
  readline           pkgs/main/linux-64::readline-8.2-h5eee18b_0 None
  setuptools         pkgs/main/linux-64::setuptools-65.6.3-py39h06a4308_0 None
  sqlite             pkgs/main/linux-64::sqlite-3.40.1-h5082296_0 None
  tk                 pkgs/main/linux-64::tk-8.6.12-h1ccaba5_0 None
  tzdata             pkgs/main/noarch::tzdata-2022g-h04d1e81_0 None
  wheel              pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0 None
  xz                 pkgs/main/linux-64::xz-5.2.10-h5eee18b_1 None
  zlib               pkgs/main/linux-64::zlib-1.2.13-h5eee18b_0 None


Proceed ([y]/n)? y


Downloading and Extracting Packages
tzdata-2022g         | 114 KB    | ########################################################################################################### | 100% 
readline-8.2         | 357 KB    | ########################################################################################################### | 100% 
pip-22.3.1           | 2.7 MB    | ########################################################################################################### | 100% 
python-3.9.16        | 25.0 MB   | ########################################################################################################### | 100% 
xz-5.2.10            | 429 KB    | ########################################################################################################### | 100% 
sqlite-3.40.1        | 1.2 MB    | ########################################################################################################### | 100% 
ncurses-6.4          | 914 KB    | ########################################################################################################### | 100% 
openssl-1.1.1s       | 3.6 MB    | ########################################################################################################### | 100% 
libffi-3.4.2         | 136 KB    | ########################################################################################################### | 100% 
setuptools-65.6.3    | 1.1 MB    | ########################################################################################################### | 100% 
ca-certificates-2023 | 120 KB    | ########################################################################################################### | 100% 
zlib-1.2.13          | 103 KB    | ########################################################################################################### | 100% 
certifi-2022.12.7    | 150 KB    | ########################################################################################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate PythonBasic
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Retrieving notices: ...working... done
(base) wux_labs@wux-labs-vm:~$

创建完成后,通过命令可以查看当前虚拟环境列表。

image-20230211003737567

切换虚拟环境

使用命令切换虚拟环境。

conda activate PythonBasic

image-20230211003845173

验证虚拟环境

首先还是看看当前虚拟环境中安装的包。

conda list
pip list

由于操作系统不一样,在Linux系统上预安装的包与Windows操作系统上的包会有一些差异。

image-20230211003953833

然后进入Python解释器环境,编写代码验证一下。

print("Hello Python Basic")

image-20230211004153589

总结

Python的虚拟环境可以起到环境隔离的作用,当我们同时开发多个项目、需要使用同一个依赖库的不同版本时,虚拟环境非常有用。创建好虚拟环境后,就可以安装自己需要的包,开发项目了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/341907.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

性能优化方向

性能怎么样就看io的应用&#xff0c;网络和数据库要好好设计&#xff0c;能一次查出来就一次。 对外接口尽量不要多创建对象&#xff0c; 少用bean复制 少用getbean(.class) 缓存不要频繁操作&#xff0c;最好异步 循环不要调用数据库&#xff0c;调用接口最好批量 Compon…

UG NX二次开发(C#)-UIStyler-创建长方体

文章目录 1、前言2、UG NX自动的创建长方体界面3、在块样式编辑器中创建UI界面4、创建一个工程5、在创建按钮中添加代码6、调用dll7、结论1、前言 UG NX二次开发中,UIStyler是一种非常高效的开发方式,UG NX已经为我们提供了比较完善的UIStyler开发模板,只要通过拖动的方式就…

GAN系列基础知识

原始值函数 原始GAN的值函数是 minGmaxDV(D,G)Ex∼pdata(x)[logD(x)]Ez∼pz(z)[log(1−D(G(z)))]min_Gmax_DV(D,G) E_{x \sim p_{data}(x)}[logD(x)]E_{z \sim p_{z}(z)} [log(1-D(G(z)))]minG​maxD​V(D,G)Ex∼pdata​(x)​[logD(x)]Ez∼pz​(z)​[log(1−D(G(z)))] 其中Ex…

尚医通(十二)SpringCloud相关概念介绍 | 搭建Nacos服务

目录一、什么是微服务1、微服务的由来2、为什么需要微服务3、微服务与单体架构区别4、微服务本质5、什么样的项目适合微服务6、微服务开发框架7、什么是Spring Cloud8、Spring Cloud和Spring Boot是什么关系9、Spring Cloud相关基础服务组件10、Spring Cloud的版本二、Nacos1、…

XXL-JOB 极简入门

文章目录1 概述2 特性3 架构设计3.1设计思想3.2 系统组成3.3架构图3.4 高可用3.4.1 调度中心的高可用3.4.2 执行器的高可用4 搭建调度中心4.1 克隆源码4.2 初始化 XXL-JOB 表结构修改配置文件4.4 修改日志配置文件4.5 IDEA 启动调度中心4.6 编译源码4.7 命令行启动调度中心4.8 …

D32 Vue2 + Vue3 K124-K143

D32.Vue F21.创建vue3项目&#xff08;K124-K129&#xff09; 该笔记是从vue2过渡到vue3的&#xff0c;所以不会特别详细的介绍某些vue2学过的&#xff0c;主要介绍vue3新增的 1.Vue3快速上手 A. Vue3简介 1&#xff09;2020年9月18日&#xff0c;Vue.js发布3.0版本&…

高性能(一)

思维导图 一、负载均衡 1.概念 将用户请求分摊到不同服务器上处理&#xff0c;以提高系统整体的并发处理能力及可靠性。 如图&#xff1a;我们用到负载均衡&#xff0c;实现访问商品服务的请求的分流。 负载均衡是一种常用且简单的提高系统并发和可靠性的手段&#xff0c;单…

MySQL入门篇-MySQL 二进制日志binlog介绍

MySQl binlog介绍 binlog的作用 逻辑日志,记录的是数据库内部的所有变动&#xff08;sql语句 行的改变&#xff09; server层日志&#xff0c;binlog不仅仅记录innodb的变动&#xff0c;也记录myisam存储引擎的变动。 innodb redo 是存储引擎层&#xff0c;和binlog不是一层&…

spark02-内存数据分区切分原理

代码&#xff1a;val conf: SparkConf new SparkConf().setMaster("local[*]").setAppName("wordcount") val scnew SparkContext(conf) //[1] [2,3] [4,5] val rdd: RDD[Int] sc.makeRDD(List(1,2,3,4,5),3) //将处理的数据保存分区文件 rdd.saveAsText…

【PTA Advanced】1152 Google Recruitment(C++)

目录 题目 Input Specification: Output Specification: Sample Input 1: Sample Output 1: Sample Input 2: Sample Output 2: 思路 代码 题目 In July 2004, Google posted on a giant billboard along Highway 101 in Silicon Valley (shown in the picture below)…

清除 git 所有历史提交记录,使其为新库

清除 git 所有历史提交记录&#xff0c;使其为新库需求方案需求 基于以前的仓库重新开发&#xff0c;这样可保留以前的配置等文件&#xff0c;但是需要删除全部的历史记录、tag、分支等。 方案 创建新的分支 使用 --orphan 选项&#xff0c;可创建1个干净的分支&#xff08;无…

设置测试用例的具体方法

文章目录一、等价类分区/分块的概念等价类的划分二、边界值三、因果图(判定表)四、场景设计法五、错误猜测法总结一、等价类 用户的密码为6~18位,测试的时候使用到的测试数据是什么? 穷举法,6,7,8,9,10…18全部都测试一边,可以 但是将范围改成6~1000位,穷举法就不可取了 分区/…

从零实现高并发WebRTC服务器(五):ICE协议

文章目录零、ICE具体做些什么一、ICE协议是什么二、ICE Candidate2.1 ICE CANDIDATE TYPE2.2 收集candidate零、ICE具体做些什么 收集candidate对不同type的所有candidate pair进行排序&#xff0c;比如优先使用同一内网的host candidate连通性检查 一、ICE协议是什么 ICE,i…

线性杂双功能PEG试剂OPSS-PEG-Acid,OPSS-PEG-COOH,巯基吡啶聚乙二醇羧基

英文名称&#xff1a;OPSS-PEG-COOH&#xff0c;OPSS-PEG-Acid 中文名称&#xff1a;巯基吡啶-聚乙二醇-羧基 OPSS-PEG-COOH是一种具有OPSS和羧基的线性杂双功能PEG试剂。它是一种有用的带有PEG间隔基的交联剂。OPSS代表正吡啶基二硫化物或邻吡啶基二硫代&#xff0c;与硫醇、…

Java 修饰符和运算符,超详细整理,适合新手入门

目录 一、访问控制修饰符 1、访问权限 二、运算符 1、算术运算符 2、关系运算符 3、逻辑运算符 4、赋值运算符 5、三元运算符 一、访问控制修饰符 Java 支持 4 种不同的访问权限&#xff1a; private 私有的 protected 受保护的 public 公共的 default 默认 1、…

程序员必备小众又实用的网站,你知道几个?

程序员是世人眼中的高薪职业&#xff0c;虽然亚历山大&#xff0c;但是年收入非常可观。 职场上的程序员有很多所谓的标签&#xff0c; 比如&#xff1a;秃头&#xff0c;找不到女朋友&#xff0c;和产品经理的斗智斗勇等等.... 可以说&#xff0c;一个程序员的必备素养就是…

【C++11智能指针】unique_ptr

【C11智能指针】unique_ptr 概述 一个 unique_ptr “拥有”它所指向的对象。 与 shared_ptr 不同&#xff0c;某个时刻只能有一个 unique_ptr 指向一个给定对象。 当 unique_ptr 被销毁时&#xff0c;它所指向的对象也被销毁。 初始化 直接初始化 unique_ptr<int> p…

AcWing 166. 数独(DFS + 剪枝优化 + lowbit函数 + 状态压缩)

AcWing 166. 数独&#xff08;DFS 剪枝优化 lowbit函数 状态压缩&#xff09;一、题目二、分析1、状态压缩2、lowbit函数&#xff08;1&#xff09;函数作用&#xff08;2&#xff09;函数实现3、DFS思路4、剪枝优化三、代码一、题目 二、分析 1、状态压缩 那么如果针对某一…

情人节专场即将到来,各大平台各显神通

一年一度的情人节即将到来&#xff0c;情人节除了有情侣、恋人之间表达爱意或者追求浪漫之外&#xff0c;也有很多人想要购买一些特殊的礼物送给自己的爱人或者亲人。对于跨境电商而言&#xff0c;这个时段往往能更好的将品牌与社交媒体上的目标客户建立起联系&#xff0c;同时…

【青训营】分布式定时任务简述

这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天 分布式定时任务简述 定义 定时任务是指系统为了自动完成特定任务&#xff0c;实时、延时、周期性完成任务调度的过程。分布式定时任务是把分散的、可靠性差的定时任务纳入统一平台&#xff0c;并且实现集群管理调度和…