使用virtualenv/Anaconda/Miniconda创建python虚拟环境

自带venv

免安装直接使用

虚拟环境是创建一种隔离的工作空间,在该工作空间中可以安装不同的库,而不影响其他的项目。其中,python自带的venv,就可以很好的创建虚拟环境了。

# 创建虚拟环境
python -m venv venv

# windows系统激活虚拟环境
venv\Scripts\activate

# linux系统激活虚拟环境
source venv/bin/activate

# 退出虚拟环境
deactivate

# 创建自选名称的虚拟环境
python -m venv my_venv
my_venv\Scripts\activate

venv在创建虚拟环境时,会在当前目录下生成一个虚拟环境的目录,可以直接通过观察看到。

依赖的导出与恢复

如果我们通过requirements.txt保存了当前安装的所有包,就可以下一次在其他地方,进行恢复了。

# 保存所有的安装
pip freeze > requirements.txt

# 恢复所有的安装
pip install -r requirements.txt

使用virtualenv

通过pip安装使用

virtualenv是一个第三方库,尤其在python早期发挥了重要作用。它的使用方法和自带的venv几乎相同,因此,近些年的使用逐渐减少。但是,它的出现要早于自带的venv,因此,在较早时期(python3.3之前),创建虚拟环境经常使用该库。

注意:虽然在早期,该库非常重要,但是时至今日,应该优先使用venv。

使用pip安装

# 安装
pip install virtualenv

# 检查是否安装成功
virtualenv --version

创建虚拟环境(与venv使用基本相同)

virtualenv myenv

# 在早期版本中,virtualenv创建虚拟环境时会先复制系统已有的安装包
# 因此,如果需要创建一个不包含安装包的干净环境需要特意指出
virtualenv myenv --no-site-packages  # 在现在的版本中,这已经成为了默认选项,无需这样做

# windows系统激活虚拟环境
myenv\Scripts\activate

# linux系统激活虚拟环境
source myenv/bin/activate

# 退出虚拟环境
deactivate

同样的,virtualenv在创建虚拟环境时,也会在当前目录下生成一个虚拟环境的目录,可以直接通过观察看到。

virtualenvwrapper扩展

通过pip安装

# 如果是windows系统,安装virtualenvwrapper-win
# virtualenvwrapper-win通常会自动添加可执行文件,因此通常无需自己配置环境变量
pip install virtualenvwrapper-win

# 对于linux系统,安装virtualenvwrapper
# 需要根据自己的情况配置环境变量
pip install virtualenvwrapper

常用命令

# 创建新的虚拟环境
mkvirtualenv myenv

# 退出虚拟环境
deactivate

# 切换虚拟环境
workon myenv

# 列出所有虚拟环境
lsvirtualenv

# 删除虚拟环境
rmvirtualenv myenv

mkvirtualenv在创建虚拟环境时,不会直接在当前目录下生成虚拟环境的目录,不可以直接在当前目录看到。

关于虚拟环境的具体存储位置,通常在使用lsvirtualenv列出所有虚拟环境的时候可以显示。

使用conda

conda介绍

Conda是一个跨平台的开源包管理和环境管理工具,它既可以安装,更新软件包,也可以创建,管理开发环境。

Anaconda是一个功能全面的发行版,已经包括了conda,python,以及众多安装包,目的是为了帮助初学者一次性解决逐个安装安装包的麻烦,因此,anaconda的体积很大。

Miniconda是Anaconda的简化版本,包含了少量安装包,因此体积小了很多。

所以实际上,conda是核心工具,Anaconda以及Miniconda都包含了conda。如果是为了创建虚拟环境,那么选择哪一个都是可行的,因为他们都包括了conda。

Conda的github地址

conda安装

下面以Miniconda为例,介绍一下安装过程。(Anaconda的使用方法与Miniconda相同)

首先,下载一个适合的版本:Miniconda下载地址 

如果你需要Anaconda的话,那么选择:Anaconda下载地址

然后按照提示安装即可,需要注意的是,最好要勾选Add Anaconda/Miniconda to my PATH environment variable,以便于可以在命令行中使用。

配置环境变量(可选)

虽然反复叮嘱,要记得在安装时添加到环境变量,但是总有忘记的可能,或者根本没找到这个选项,如果真的忘记了,那么只能手动配置环境变量了。

首先要确认安装路径,比如说,“C:\ProgramData\Miniconda3“是一个可能的默认路径。(如果是Anaconda的话,则需要使用Anaconda的路径,如果是自选安装路径的话,那么就要使用实际的安装路径)

右键点击“我的电脑”(或者此电脑),打开属性菜单,下拉找到“高级系统设置”

 在高级系统设置中,找到环境变量一项,找到其中的Path一项(选择系统变量还是用户变量根据个人需求),点击“编辑”,在编辑环境变量窗口中点击“新建”,然后添加安装路径。

# 要根据实际安装路径进行填写
C:\ProgramData\Miniconda3
C:\ProgramData\Miniconda3\Scripts
C:\ProgramData\Miniconda3\Library\bin

如果配置都正确的话,那么现在在命令行,应该已经可以使用conda了。所以说,早知今日,何必当初,安装的时候就让它自动添加,就省了很多事情啦。

 conda命令

conda更新,首先更新通常是一个好选择

conda update conda

conda常用指令

# conda创建虚拟环境,并且安装python3.13
# 使用conda的时候可以轻松创建和管理多个不同的python版本
# 你无需担心你的系统中没有安装过这个版本
conda create -n myenv python=3.13

# conda创建虚拟环境,但是无需安装新的python
conda create -n myenv2

# conda激活虚拟环境
conda activate myenv

# conda退出虚拟环境
conda deactivate

# conda列出环境
conda env list

# conda删除环境
conda remove -n myenv --all

# conda重新初始化(激活环境时遇到问题,执行该命令可能有效果)
conda init

在使用conda的时候,应当使用conda安装以及管理包,这种情况下避免混用pip是一个好的提议(使用conda时,总是优先使用conda安装,除非conda没有该安装包,才考虑pip)。

# conda安装包
conda install 安装包名

# conda搜索包
conda search 安装包名

# conda更新包
conda update 安装包名

# conda卸载包
conda remove 安装包名

# conda查看已安装包
conda list

# conda查看某个环境已安装包
conda list -n 环境名称

环境的导出与恢复

导出环境

conda env export > environment.yml

恢复环境

conda env create -f environment.yml

如果你希望在恢复环境的时候重新命名,那么通过-n选项,覆盖掉原本的包名即可

conda env create -f environment.yml -n myenv2

总结

在python中存在很多种创建虚拟环境的方式,甚至还远不止介绍的最常见的这三种,不过,通常这三种就能够满足大多数需要了,因此就不继续介绍更多种方法了。

如果你需要快速创建一个虚拟环境,对于虚拟环境的复杂操作要求并不高,那么使用自带的venv就足够了。

如果你希望能够对虚拟环境进行统一的管理,而不是每个项目都要包括一个虚拟环境的目录,那么可以使用virtualenv及其扩展virtualenvwrapper。

如果你不仅希望能够轻松管理安装包,还要进行python自身的版本切换,那么使用Miniconda或者Anaconda都是好的选择。

总之,你可以根据自己的需求,以及个人喜好进行选择,并没有一个固定的答案表明“哪一种是最好的”(但是目前virtualenv以及venv中应该优先考虑venv)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux -- 共享内存(2)

目录 命令 ipcs -m : 命令 ipcrm -m shmid: 共享内存的通信: 为什么共享内存更高效? 代码: ShmClient.cc: ShmServer.cc: 结果: 如何让共享内存实现同步? 代码&a…

119.WEB渗透测试-信息收集-ARL(10)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:118.WEB渗透测试-信息收集-ARL(9) 释放完成后,点击创…

[mysql]子查询的概述和分类及单行子查询

子查询引入 查询的基本结构已经给大家了,子查询里面也是有一些新的内容,子查询其实就是在查询中嵌套另一个查询,叫嵌套查询可能大家更容易理解一点..,类似与FOR循环和FOR循环的嵌套,这一章是我们查询的最难的部分,大家 难度是查询的顶峰,多表查询和子查询是非常重要,SQL优化里…

2024年AR游戏市场分析:创业指南

自从2016年《Pokmon GO》横空出世以来,增强现实(AR)游戏已经成为移动游戏领域的一大亮点。然而,随着时间的推移,AR游戏市场是否仍然充满机遇?本文将对当前市场上成功的AR游戏进行分析,并为有意进入这一领域的创业者提供一些启示。 一、市场领导者分析 《Pokmon GO》自…

kotlin实现viewpager

说明:kotlin tablayout viewpager adapter实现滑动界面 效果图 step1: package com.example.flushfragmentdemoimport androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.…

用哪种建站程序做谷歌SEO更容易?

做网站很容易,但做一个能带来流量和订单的网站就没那么简单了。尤其是在谷歌SEO优化方面,不同的建站程序对SEO的支持程度也不同。在这方面,WordPress和Shopify无疑是最佳选择。 WordPress作为一个内容管理系统(CMS)&am…

【无人机设计与控制】基于Astar算法无人机路径规划,优化路径平滑

摘要 本文提出了一种基于A算法的无人机路径规划方法,并通过路径平滑优化提升路径的可行性和安全性。传统A算法在生成路径时,常因路径节点分布不规则导致路径不平滑,影响无人机的飞行效率和安全性。本文通过引入贝塞尔曲线对A*算法生成的路径…

【C++笔记】模板初阶

前言 各位读者朋友们大家好,上期我们讲完了C的内存管理部分,这一期我们开始初步认识一下模板。 目录 前言一. 泛型编程二. 函数模板2.1 函数模板概念2.2 函数模板的格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板函数匹配规则 三. 类模板3.1 类模…

vue3组件通信--props

目录 1.父传子2.子传父 最近在做项目的过程中发现&#xff0c;props父子通信忘的差不多了。下面写个笔记复习一下。 1.父传子 父组件&#xff08;FatherComponent.vue&#xff09;&#xff1a; <script setup> import ChildComponent from "/components/ChildComp…

海外媒体发稿:如何打造媒体发稿策略

新闻媒体的发稿推广策略对于提升品牌知名度、吸引流量以及增加收入非常重要。本文将介绍一套在21天内打造爆款新闻媒体发稿推广策略的方法。 第一天至第七天&#xff1a;明确目标和定位 在这个阶段&#xff0c;你需要明确你的目标和定位&#xff0c;以便为你的新闻媒体建立一个…

1U服务器和Hyper-V虚拟机使用记录

记录最近接触服务器和虚拟机的一些使用操作知识 背景&#xff1a;1U服务器上架使用&#xff0c;备份其他服务器vm虚拟机&#xff0c;Hyper-V管理虚拟机使用测试 设备&#xff1a;IBM3550服务器交换机&#xff0c; 移动硬盘&#xff1a;附加存储盘&#xff0c; u盘1&#xff1…

GCN+BiLSTM多特征输入时间序列预测(Pytorch)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 GCNBiLSTM多特征输入时间序列预测&#xff08;Pytorch&#xff09; 可以做风电预测&#xff0c;光伏预测&#xff0c;寿命预测&#xff0c;浓度预测等。 Python代码&#xff0c;基于Pytorch编写 1.多特征输入单步预测…

sersync实时同步部署案例

目录 sersync介绍 案例信息 操作步骤 服务端部署 客户端部署 创建存储目录 安装sersync 修改配置文件 启动服务 停止服务 测试 sersync介绍 sersync是一个基于inotifyrsync的实时文件同步工具&#xff0c;通过监控目录的变动达到实时同步的目的。 案例信息 拓扑…

ELK之路第一步——Elasticsearch集群的搭建以及踩坑记录

elasticSearch集群 前言一、架构二、下载三、虚拟机相关设置3.1 创建es用户3.2 为建es用户赋权sudo3.3 更换es目录所属用户 四、Elasticsearch配置文件修改4.1 修改elasticsearch.yml4.2 修改jvm.options4.3 修改jdk路径 五、启动六、启动报错七、可视化界面cerebro 前言 Elk&…

SwiftUI:单个App支持设置多语言

SwiftUI 全新多语言方案 简化本地化的字符串- WWDC21 - 视频 本地化您的SwiftUI app - WWDC21 - 视频 构建全球化App&#xff1a;本地化的示例- WWDC22 - 视频 构建支持多语言的App - WWDC24 - 视频 单个App支持设置多语言 工程 Info.plist里添加 键值UIPrefersShowingLangua…

go 使用fyne实现桌面程序的计算器例子

使用Fyne工具包构建跨平台应用是非常简单的&#xff0c;在此之前我们需要做一些准备功能做&#xff0c;比如安装一些gcc基础图形依赖库&#xff0c;还有go语言本身的运行开发环境都是必要的。 在此之前我们希望你是go语言的已入门用户&#xff0c;掌握go的协程&#xff0c;管道…

【C++进阶篇】——STL的简介

【C进阶篇】——STL的简介 1.什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 2.STL的版本 原始版本 Alexander Stepanov、Meng Lee 在…

【Linux系统】环境变量

一、通俗例子解释环境变量概念与作用 想象你在厨房做饭&#xff0c;需要找到各种调料和工具。这些调料和工具就相当于计算机中的“资源”&#xff0c;而环境变量就像厨房里的一本规则书&#xff0c;里面列出了厨房里所有调料和工具的位置。 具有全局性&#xff08;所有人都能用…

MCU SCT文件学习

硬件&#xff1a;GD32F427, 外设&#xff1a;FreeRtos,ADC,DMA 现象&#xff1a;注释掉一些线程&#xff0c;发现ADC采样的线程采样不到数据了。 开始猜测是线程重入&#xff0c;破坏了地址&#xff0c;后来思考一下发现不对&#xff0c;因为注释掉线程&#xff0c;ADCDMA采…

【Vulnhub靶场】DC-4

DC-4靶场下载地址https://www.five86.com/downloads/DC-4.zip 本机IP&#xff1a;192.168.118.128 靶机IP&#xff1a;192.168.118.0/24 信息收集 扫描主机存活&#xff0c;扫描端口&#xff0c;扫描服务 第一步扫描出主机ip为192.168.118.141 nmap -sP 192.168.118.0/24 nm…