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

但是时间久了,还是带着这种想法,可能就会遇到一些棘手的问题。比如电脑上不知不觉已经安装了多个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. Qt信号槽

    Qt 信号槽 Qt的信号槽,除了使用信号连接槽,还可以信号连接信号,断开信号,发送(转发)信号. 一个信号可以连接一个槽,也可以一个信号连接多个槽,还可以多个信号连接一个槽.   // 信号连接槽 c ...

  2. vs报错:RC1004 unexpected end of file found

    如图,在编译代码时,出现报错:RC1004  unexpected end of file found 原因是,cpp最后要多一行才行,不然就会报这个错误 错误示例: int main() { ret ...

  3. iOS系统崩溃的捕获

    iOS系统崩溃的捕获 相信大家在开发iOS程序的时候肯定写过各种Bug,而其中最为严重的Bug就是会导致崩溃的Bug(一般来说妥妥的P1级).在应用软件大大小小的各种异常中,崩溃确实是最让人难以接受的 ...

  4. mysql 重新整理——sql 执行语句的顺序[五]

    前言 盗图: 其实在复杂的语句中,需要我们逐步去分析,然后呢,我们了解一些优化器到底是如何帮我们优化的,就知道到底是mysql怎么执行代码. 我把以前的丢了,后续补全.

  5. ionic 4 app 自动版本更新

    前言 介绍一下ionic4 app的自动更新.ionic 不多介绍了,后面一个后系列,背负着骂名的ionic其实还是可以的,如果刚入门ionic可能觉得很坑,但是呢,往后你就发现另外一件事,那就是其他 ...

  6. i-MES生产制造管理系统-老化时间管控

    在生产过程中,产品的可靠性是影响其性能和寿命的关键因素,因此提高产品的可靠性是十分必要的,而老化测试是提高产品可靠性的重要手段之一,老化的时间随着产品不同而变化,因此老化时间管控变得尤为重要! 在ME ...

  7. 树莓派和esp8266在局域网下使用UDP通信,esp8266采集adc数据传递给树莓派,树莓派在web上显示结果

    树莓派和esp8266需要在同一局域网下 esp8266使用arduino开发: 接入一个电容土壤湿度传感器,采集湿度需要使用adc #include <ESP8266WiFi.h> #i ...

  8. Linux下的权限(角色,文件权限)

    目录 1.什么是权限 2.文件类型及权限 ①Linux文件类型: ②剩余9个字符对应的含义: ③文件权限值的表示方法(进制法) 3.如何操作权限 3.1改变权限的命令操作 chmod #change ...

  9. 见鬼了!我家的 WiFi 只有下雨天才能正常使用...

    这是作者大学时期在家里遇到的一个非常奇怪的网络问题,作者的父亲是一名经验丰富的网络工程师,他们家里使用了一个复杂的网络设置,通过 Wi-Fi 桥接的方式,将父亲公司的高速商业网络连接到家中.但是有一天 ...

  10. 用百度和神策做埋点为何pv差异很大?

    近期ClkLog收到一个客户反馈说我们与百度统计的PV数据差异很大.为了验证问题,开发进行了一次对页面浏览量统计的测试.针对同一个IP同一个时间的页面浏览量统计发现,百度的统计数据只有一条,而ClkL ...