刚开始接触并学习一门开发语言,带着不求甚解的想法,其实也挺有好处的:我并不是所有的东西都知道,但是代码跑起来了。

但是时间久了,还是带着这种想法,可能就会遇到一些棘手的问题。比如电脑上不知不觉已经安装了多个python版本,python3.8/3.10/3.11,甚至一些软件中也集成有python解释器;那么我编写的python代码,到底是使用哪个解释器在执行?我通过pip包管理工具安装的依赖包到底在那个地方?为什么已经安装了依赖包,代码提示还是缺少依赖呢?先通过以下命令,查看下电脑上到底有多少个python版本吧:

where python

已经看到3个python解释器了,但是我记得明明也安装了python3.11呀,怎么没有出现呢?

原来在环境变量中没有配置,那就在环境变量中添加下,如图所示:

再次运行命令 where python ,好了已经看到了python3.11:

接下来我们就从以下几个方面入手来探讨下python基础环境:环境变量版本区分虚拟环境

一、环境变量

为了使python解释器生效,我们会通过配置环境变量,也就是将python解释器 python.exe 可执行文件所在的目录添加到系统变量Path中,如此我们就可以在命令行中,通过 python -V 命令来检查python解释器的环境变量是否配置成功。

python的包管理工具pip也是如此,为了使其生效,我们将pip.exe可执行文件所在的目录也添加到系统变量Path中。此时我们也同样可以通过 pip -V 命令来查看包管理工具是否能正常使用。

#1.配置python解释器环境变量:将“C:\Python311”目录添加到Path系统变量中,通过以下命令查看是否生效
python -V
#配置pip环境变量:将“C:\Python311\Scripts”目录添加到Path系统变量中,通过以下命令查看是否生效
pip -V

如果不配置环境变量,要使用python解释器,比如我们我们同样要查看python解释器的版本,使用如下命令:

C:\Python311\python.exe -V
#如果路径中包含空格或特殊字符(如括号、等号等),通常需要使用引号将路径括起来,以确保命令解释器正确地识别路径。这是因为命令行解释器会将空格视为命令参数的分隔符
"C:\Python311\python.exe" -V

二、版本区分

就拿我电脑上的三个python解释器来说吧,我通过 python -V 获取的到底是哪个python解释器的版本呢?如果使用pip安装的python包,到底安装在什么地方呢?

#1.查看各解释器的版本
"C:\Program Files\Odoo 16.0.20230810\python\python.exe" -V
C:\Python311\python.exe -V
C:\Users\Administrator\AppData\Local\Programs\Python\Python310\python.exe -V #2.查看各解释器的pip版本
#python -m pip:表示使用python解释器自带的包管理工具
"C:\Program Files\Odoo 16.0.20230810\python\python.exe" -m pip -V
C:\Python311\python.exe -m pip -V
C:\Users\Administrator\AppData\Local\Programs\Python\Python310\python.exe -m pip -V #3.查看解释器对应的pip管理工具下载文件包的位置:pip show requests
"C:\Program Files\Odoo 16.0.20230810\python\python.exe" -m pip show requests
C:\Python311\python.exe -m pip show requests
C:\Users\Administrator\AppData\Local\Programs\Python\Python310\python.exe -m pip show requests #4.使用 pip 安装包到指定位置:在特定情况下方便整体复制粘贴到相似的环境
pip install package_name --target D:\MyPackages

我们配置了两个版本的python环境变量,那么在cmd命令行中,查看的python解释器版本和pip的下载位置,究竟是哪个python版本呢?在cmd命令行工具中,谁的配置靠前就是谁的

三、虚拟环境

Python 虚拟环境是相对于系统环境而言的一个独立的环境,因此虚拟环境并不直接依赖于系统环境。当你创建一个 Python 虚拟环境时,它会在指定的目录下安装一个完整的 Python 解释器以及相应的 pip工具。在虚拟环境中安装的所有包和依赖项都是针对该虚拟环境的,并不会影响到系统环境中的 Python 解释器或包。因此,如果你删除了系统环境中的 Python 解释器或包,虚拟环境中的 Python 解释器和包仍然存在于其指定的目录下,可以继续使用。这就是为什么使用虚拟环境是一种良好的实践,因为它可以确保你的项目在不同的系统环境中都能够正常工作,并且不会受到系统环境中其他 Python 包或依赖项的影响。

windows中虚拟环境的用法:

#1.安装虚拟环境管理器:在 Windows 上,Python 通常附带了一个名为 venv 的虚拟环境管理器。可以使用以下命令来验证是否已安装 venv:
python -m venv --help
#2.创建虚拟环境:在命令提示符中,进入你想要创建虚拟环境的目录,然后运行以下命令来创建虚拟环境:
python -m venv odoo16_venv
#3.激活虚拟环境:
odoo16_venv\Scripts\activate
#4.在虚拟环境中安装python依赖包:
pip install package_name
#5.退出虚拟环境:
deactivate

ubuntu中虚拟环境的用法:

#1.安装 Python:
python3 --version
#如果没有安装 Python,你可以使用以下命令安装:
sudo apt update
sudo apt install python3 #2.安装虚拟环境管理器:
sudo apt update
sudo apt install python3-venv #3.创建虚拟环境:在终端中,进入你想要创建虚拟环境的目录,并运行以下命令来创建虚拟环境:
python3 -m venv odoo16_venv #4.激活虚拟环境:
source myenv/bin/odoo16_venv #5.在虚拟环境中安装python依赖包:
pip install package_name #6.退出虚拟环境:
deactivate

点击阅读原文:菜园工程师

python基础环境的更多相关文章

  1. Python基础环境搭建

    一.编程语言 1.解释型语言:每执行一次程序就要将代码翻译一次,如Java.JavaScript.VBScript.Perl.Python.Ruby.MATLAB 等都是解释型语言 2.编译型语言:程 ...

  2. 认识Python&基础环境搭建

    前言 作为.NET Coder可能.NET Core是现阶段首要学习方向,但是说实在的对Core真的不感冒. 原因有几点: 1.公司项目底层需要的一部分库,Core还不支持. 2.同样的需求,.NET ...

  3. python selenium 环境搭建(一)

    elenium 虽然过了这么多年,但是到目前为止依然是比较流行的自动化框架了,还有很多的初学者在学习,所以根据自己的时间将把相关的资料汇总一下,下面首先我们需要搭建一下基础环境. 首先自己本身比较笨, ...

  4. Python基础知识(Basic knowledge)

    Python基础知识(Basic knowledge) 1.认识Python&基础环境搭建 2.Python基础(上) 3.Python基础(中) 4.Python基础(下) 5.Python ...

  5. python selenium-webdriver 环境搭建(一)

    selenium 虽然过了这么多年,但是到目前为止依然是比较流行的自动化框架了,还有很多的初学者在学习,所以根据自己的时间将把相关的资料汇总一下,下面首先我们需要搭建一下基础环境. 首先自己本身比较笨 ...

  6. Python 基础【第一篇】环境部署

    一.Windows基础环境配置部署 1.1.下载python安装程序 下载地址:https://www.python.org/ftp/python/3.4.1/python-3.4.1.msi 1.2 ...

  7. [零基础学pythyon]安装python编程环境

    不论什么高级语言都是须要一个自己的编程环境的,这就好比写字一样,须要有纸和笔,在计算机上写东西.也须要有文字处理软件,比方各种名称的OFFICE.笔和纸以及office软件,就是写东西的硬件或软件.总 ...

  8. 鲲鹏云实验-Python+Jupyter机器学习基础环境

    [摘要] 介绍Ubuntu 18.04环境下Python3常用科学计算和数据分析包(numpy, scipy, matplotlib, sklearn, pandas)的安装,以及Jupyter No ...

  9. Python基础学习之环境搭建

    Python如今成为零基础编程爱好者的首选学习语言,这和Python语言自身的强大功能和简单易学是分不开的.今天我们将带领Python零基础的初学者完成入门的第一步——环境搭建.本文会先来区分几个在P ...

  10. Python3基础教程1——Python的环境搭建

    2018年3月8日 当然推荐一个比较系统的教程 http://www.runoob.com/python3/python3-tutorial.html 人家也写的也比我好啦 本教程为新手向的,请大佬跳 ...

随机推荐

  1. 我为OpenHarmony 写代码,战“码”先锋第二期正式开启!

    OpenAtom OpenHarmony(以下简称"OpenHarmony")问世以来,两年多时间汇聚了160万+社区用户,全球下载次数高达6300万,5.5万+次代码提交,吸引了 ...

  2. C 语言函数完全指南:创建、调用、参数传递、返回值解析

    C 语言中的函数 函数是一段代码块,只有在被调用时才会运行. 您可以将数据(称为参数)传递给函数. 函数用于执行某些操作,它们对于重用代码很重要:定义一次代码,并多次使用. 预定义函数 事实证明,您已 ...

  3. SQline安装

    SQLite 安装 SQLite 的一个重要的特性是零配置的,这意味着不需要复杂的安装或管理.本章将讲解 Windows.Linux 和 Mac OS X 上的安装设置. 在 Windows 上安装 ...

  4. 聚焦AI新技术,HMS Core机器学习服务为移动应用智能化注入新动力

    近年来,以机器学习为代表的人工智能技术(以下简称AI技术)蓬勃发展.新算法层出不穷,开发出的图像识别.自然语言.活体检测等能力令智能化的未来生活不再遥不可及.同时,这些AI技术正持续演化和发展,数据和 ...

  5. Oracle with的重复使用(递归)

    Oracle with的重复使用(递归) 写力扣的时候学到了新的方法 Recursive WITH Clauses 通常来说如果直接使用with XXX as ()这种,是没发直接使用自身的数据的 例 ...

  6. 国庆集训 Day1 复盘笔记

    9.25 \({\color{Green} \mathrm{A\ -\ Powered\ Addition}}\) 只要把序列扫一遍,然后求出目前最大值与当前值的差的最大值 \(x\),再 \(log ...

  7. Java工具篇之Disruptor高性能队列

    简介: disruptor适用于多个线程之间的消息队列,`作用与ArrayBlockingQueue有相似之处`,但是disruptor从功能.性能都远好于ArrayBlockingQueue,当多个 ...

  8. SAE助力「海底小纵队学英语」全面拥抱Serverless,节省25%以上成本

    简介: 阿里云Serveless应用引擎SAE 具备免运维IaaS.按需使用.按量计费.低门槛服务应用上云,并且支持多种语言和高弹性能力等特点,刚好完美解决了客户长期以来运维复杂.资源利用率不高.开发 ...

  9. 【视频特辑】提效神器!如何用Quick BI高效配置员工的用数权限

    ​简介:随着企业数字化进程逐步加速,企业所产生和积累的数据资源日益增多.每当员工的用数权限发生变动,管理员都需要进行复杂繁琐的重复性配置流程,不仅耗时耗力还容易出错. 如何能便捷地对员工用数权限进行高 ...

  10. 基于英特尔® 优化分析包(OAP)的 Spark 性能优化方案

    ​简介: Spark SQL 作为 Spark 用来处理结构化数据的一个基本模块,已经成为多数企业构建大数据应用的重要选择.但是,在大规模连接(Join).聚合(Aggregate)等工作负载下,Sp ...