Python虚拟环境详解(1)

转自失心疯:Python项目虚拟环境(超详细讲解)_python虚拟环境-CSDN博客

原文链接:https://blog.csdn.net/weixin_50296259/article/details/130738875

目录

一、Python虚拟环境简介

1. 系统解释器

2. 环境变量的配置

3. 项目开发中存在的问题

项目1:京东抢茅台

项目2:天猫抢茅台

二、虚拟环境理论

项目1:PyQt5开发

项目2:ArtCopy开发

三、Pycharm虚拟环境配置

1. 新建项目

2. 配置虚拟环境

3. 编写代码并运行

方法1:Python可视化界面操作

方法2:命令行运行程序

4. 安装第三方模块(带路径)

5. Pycharm下自动激活虚拟环境

步骤1:打开Pycharm的Terminal

步骤2:修改Pycharm默认的命令行程序

6. 安装第三方模块(在虚拟环境中)

7. 第三方包收集和安装

8. 对方安装所需的第三方模块

步骤1:手动添加虚拟环境

步骤2:根据requirements.txt文件安装第三方模块


一、Python虚拟环境简介

1. 系统解释器

在python官网下载了python解释器(实际上就是一个软件),将其安装在 D:\python39目录下,则该目录下会生成一些列文件,最重要的部分如下。

D:\Python39
    - python.exe
    - Scripts
        - pip.exe
        - pip3.exe
        - pip3.9.exe
    - Lib
        - random.py
        - re.py
        - json.py
        - site-packages
            - requests.py

以上是系统解释器。如果在电脑上同时安装多个版本的系统解释器,如python3.8,python3.9,python3.10,则会有多个目录,具体如下。

D:\Python38
    - python.exe
    - Scripts
        - pip.exe
        - pip3.exe
        - pip3.8.exe
    - Lib
        - random.py
        - re.py
        - json.py
        - site-packages
            - requests.py
            
# ----------------------------------------    
 
D:\Python39
    - python.exe
    - Scripts
        - pip.exe
        - pip3.exe
        - pip3.9.exe
    - Lib
        - random.py
        - re.py
        - json.py
        - site-packages
            - requests.py
            
# ----------------------------------------
 
D:\Python310
    - python.exe
    - Scripts
        - pip.exe
        - pip3.exe
        - pip3.10.exe
    - Lib
        - random.py
        - re.py
        - json.py
        - site-packages
            - requests.py

2. 环境变量的配置

我们的电脑可以同时安装多个版本的解释器,但是日常开发中会选择其中一个系统解释器作为主运用的解释器,这时,我们就会将这个版本的解释器的目录添加到环境变量中,例如:

D:\Python39
D:\Python39\Scripts\

添加环境变量之后,我们就可以在cmd终端中直接用python来调用解释器,实际就是通过环境变量中的D:\Python39路径来找到 python.exe。

在cmd中运行 pip install 安装第三方模块时,实际上就是通过环境变量中的 D:\Python39\Scripts\ 路径来找到 pip.exe。

3. 项目开发中存在的问题

开发一个项目时可能需要安装很多第三方模块,例如:

# 安装2.1版本的requests

pip install requests==2.1

# 安装0.9版本的flask

pip install flask==0.9

# 安装2.9版本的bs4

pip install bs4==2.9

...

通过这种安装方式,第三方模块就安装在系统解释器所在目录下的 lib \ site-packages 下。

然后我们就开始开发项目。可能会有多个不同的项目,具体如下。

项目1:京东抢茅台

这个项目可能只用到 requests 模块,因此我们就不需要再安装 requests 模块了,可以直接使用系统解释器目录下的 requests 模块。

>>> 写代码

>>> 通过系统解释器直接运行

项目2:天猫抢茅台

这个项目可能时别人已经开发好了,现在需要再次更新。但拿到别人写的代码后,发现项目中用的requests模块是1.3版本的。如果现在直接运行代码,有可能会运行不成功,因为现在我们的系统解释器中安装的requests是2.1版。

解决方法:我们需要先删除原有2.1版本的requests,重新安装1.3版本。

# 安装1.3版本的requests
pip install requests==1.3

带来的问题:由于同一个解释器下不允许安装同一个第三方模块的多个版本,因此,当安装完1.3版本时,天猫抢茅台项目能正常运行,但京东抢茅台项目无法正常运行。若要想运行东抢茅台项目,需要卸载1.3版本,再安装2.1版本的requests。当项目越来越多时,所用到的第三方模块也越来越多,我们总不能每运行一个项目就重装一遍第三方模块。

这时候,可以虚拟环境来更好地解决。

二、虚拟环境理论

我们可以基于系统解释器,虚拟出来一个相同版本的python解释器,虚拟出来的解释器如下。

E:\Projecs\PyQt5\venv

    - python.exe

    - Scripts

        - pip.exe

    - Lib

        - site-packages

可以发现这个虚拟出来的解释器,其Lib目录下不再有 python 自带的内置模块了,而是直接使用系统解释器中的内置模块。

这时,如果我们开发不同的项目,安装第三发模块时,是安装到不同的目录下。

项目1:PyQt5开发

项目结构如下:

当我们需要安装第三方模块到这个目录时,需要执行以下语句:

E:\Projecs\PyQt5\venv\Scripts\pip.exe install pyqt5

项目2:ArtCopy开发

项目结构如下:

当我们需要安装第三方模块到这个目录时,需要执行以下语句:

E:\Projecs\ArtCopy\venv\Scripts\pip.exe install cx-Oracle==8.3.0

三、Pycharm虚拟环境配置

1. 新建项目

2. 配置虚拟环境

  • 虚拟环境目录一般放在项目目录内,方便后期项目结束之后删除项目的同时就将虚拟环境一同删除了,而不再需要额外去删除虚拟环境了。
  • 虚拟环境路径中不能有中文,否则会导致虚拟环境失效。

配置完成后,项目目录如下。此时,site-package目录里面的都是pip工具相关,还没有任何第三方模块。

3. 编写代码并运行

可以在当前项目下新建一个 demo.py 程序,编写一行代码:print('Holle World!'),然后执行。

执行有2个方法:

方法1:Python可视化界面操作

方法2:命令行运行程序

E:\Projecs\pro001\.venv\Scripts\python.exe E:/Projecs/pro001/demo.py
# 通过 E:\Projecs\pro001\.venv\Scripts\ 目录下的 python.exe 解释器,
# 编译 E:/Projecs/pro001/ 目录下的 demo.py 文件

4. 安装第三方模块(带路径)

正常情况下,我们需要执行以下语句才能将第三方模块安装在这个虚拟环境中。

E:\Projecs\pro001\.venv\Scripts\pip install requests==2.1

但是,每次在这个虚拟环境下安装第三方模块时,都需要把虚拟环境的路径全部写下来,这样比较麻烦。考虑借助Pycharm环境自动激活虚拟环境,会大大简化操作。

5. Pycharm下自动激活虚拟环境

自动激活虚拟环境的前提是项目与虚拟环境进行绑定。操作步骤步骤如下:

步骤1:打开Pycharm的Terminal

步骤2:修改Pycharm默认的命令行程序

Windows有Windows PowerShell 和Cmd两种命令行程序。PyCharm默认使用的是Windows PowerShell命令行程序,但是这种形式无法激活虚拟环境,需要将其修改为Cmd命令行程序。

修改之前,无法激活虚拟环境,如下图。

修改方法:File→Settings→Tools→Shell path→选择CMD

修改之后,重新打开项目,可以发现成功激活了虚拟环境。

6. 安装第三方模块(在虚拟环境中)

虚拟环境激活之后,再安装第三方模块时就不需要写虚拟环境的全路径了,可以简化如下。

pip install requests==2.1

PyCharm默认的安装源是:https://pypi.python.org/simple,但有可能安装速度比较慢,可以修改为国内的源。

常见的国内源如下。

清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/
豆瓣源:http://pypi.douban.com/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/
华中科技大学:http://pypi.hustunique.com/
腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/

修改安装源方法:File→ settings→Project:PycharmProjects→Python Interpreter→点击加号→ 左下角Manager Repositories→点-删除官方源,点+增加国内镜像源。

7. 第三方包收集和安装

当项目开发完毕之后,我们需要把项目交付给甲方运行。但是我们发送项目时,不能发venv文件(虚拟环境),因为这个虚拟环境是基于我们自己的系统解释器虚拟出来的,对方的系统解释器目录可能和我们的不一样,这样就会导致虚拟环境无法使用。

那么,对方怎么知道项目中所用到的第三方模块和对应的版本呢?此时,我们就需要将第三方模块和版本进行收集。具体操作如下。

 1. 激活虚拟环境

 2. 执行 pip freeze > requirements.txt

# 把当前激活的虚拟环境下,所有已经安装的第三方模块全部收集起来,记录在requirements.txt文件中

8. 对方安装所需的第三方模块

甲方收到对方交付的项目是,需要需要打开运行程序。

这时,系统可以提示其创建虚拟环境。这里需要填写虚拟环境目录和依赖项。可以根据其提示进行设置,即可完成虚拟环境自动配置,并且所需的第三方模块也全部自动下载安装好了。

如果上面的创建虚拟环境被我们直接关闭跳过了,那我们需要手动添加虚拟环境并安装第三方模块。步骤如下:

步骤1:手动添加虚拟环境

File→Settings→Project:xxx→Python Interpreter→右侧设置,Add→设置虚拟环境目录和基于系统解释器的虚拟化。

步骤2:根据requirements.txt文件安装第三方模块

在Pycharm的Terminal中激活虚拟环境,然后执行:

pip install -r requirements.txt

若打开Terminal后无法激活虚拟环境,则需要检查一下当前项目是否与虚拟环境绑定了。方法如下。

若requirements.txt和代码中无法体现解释器的版本,一般我们都是通过文档来记录一些说明,可以在项目中创建一个readme.md文件来记录python解释器版本和其他一些内容。

  • 30
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要迁移Python虚拟环境venv,你可以按照以下步骤进行操作: 1. 首先,在原始位置激活你的venv环境。使用命令`source venv_demo/bin/activate`(在Windows上是`venv_demo\Scripts\activate`)激活虚拟环境。 2. 导出当前虚拟环境的依赖项列表。使用命令`pip freeze > requirements.txt`将所有安装的包及其版本写入requirements.txt文件中,以备后续使用。 3. 在你想要迁移到的新位置创建一个新的虚拟环境。使用命令`python -m venv venv_demo_new`创建一个新的venv虚拟环境,其中venv_demo_new是新虚拟环境的名称。 4. 激活新的venv环境。使用命令`source venv_demo_new/bin/activate`(在Windows上是`venv_demo_new\Scripts\activate`)激活新的虚拟环境。 5. 安装依赖项。使用命令`pip install -r requirements.txt`安装之前导出的依赖项列表,以确保新的虚拟环境与原来的虚拟环境保持一致。 6. 现在,你已经成功迁移了venv虚拟环境。你可以继续在新的位置使用该虚拟环境进行开发和测试。 请注意,以上步骤假设你已经正确安装了venv工具,并且在迁移过程中没有发生错误。另外,记得在迁移之前备份你的虚拟环境,以防止意外情况的发生。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [python虚拟环境图文详解虚拟环境作用以及虚拟环境搭建,切换,退出,迁移打包)代码演示](https://blog.csdn.net/weixin_45440484/article/details/130144943)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [强制迁移Python虚拟环境](https://download.csdn.net/download/u010383605/10598273)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值