沙滩星空的博客沙滩星空的博客

在Python环境使用venv局部虚拟环境隔离依赖模块

1. 查看Python版本

如果是源码安装的Python环境。不管是V2还是V3版本。安装完后,通常是使用 python 命令。

有些Linux发行版自带Python无需安装。但命令可能分为几种。如: python python2 python3
具体是哪种,可在命令后加入 --version-V 参数查看。对于 pip 包管理工具也是一样:

    python --version
    python2 --version
    pyhon3 --version

为方便起见,下面直接默认为 python 命令。实际情况可替换为 python3 或其他。

-v-V 命令的区别:

  • python -V: 是 python --version 的别称,用于查看版本信息。
  • python -v: 是特殊的 python 命令交互模式。该模式每次有模块被初始化,就会打印相应信息。输入 exit() 可退出.

2. python模块的使用

命令行使用方式

    python -m <模块名> <模块命令参数>

查看模块版本

    python -m <模块名> --version
    python -m <模块名> version

3. pip依赖包管理工具

pip简介

python编程语言,使用 pip 作为 模块包管理工具。通常在安装Python环境时,会自动安装或出现提示 可选安装

pip 作为Python的一个全局模块而存在。

故使用模块的 --version 命令,可以查看对应python版本的 pip 模块是否已安装:

    python3 -m pip --version
    pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
    python2 -m pip --version
    /usr/bin/python2: No module named pip

安装pip

# Debian或ubuntu环境安装python3的pip模块
apt install python3-pip

也可以从源码安装:

    wget -c "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate
    tar -xzvf pip-1.5.4.tar.gz
    cd pip-1.5.4
    python setup.py install

使用pip安装模块

  • 直接安装第三方包:pip install <模块名> 或者 python -m pip install <模块名>
  • 通过txt文件中的依赖包列表,批量安装第三方包: pip install -r requirements.txt
  • 更新pip工具: pip install --upgrade pip

国内使用Pip官方源很不友好,解决方案请看: 更改Python的pip源

4. venv虚拟环境

python虚拟环境,主要用来隔离不同项目之间,因项目依赖所安装的模块。
以此解决不同项目,因依赖同一模块的不同版本,可能造成的冲突。

python有 venv virtualenv pyvenv 3个模块可用于创建和管理虚拟环境。pyvenv 不推荐使用,暂不介绍。

  • venv : Python3.3之后 标准库自带 的虚拟环境创建和管理工具。
  • virtualenv : 同时支持Python2.X和Python3.X。
  • pyvenv : Python 3.3 和 3.4 中创建虚拟环境的推荐工具。不过 在 Python 3.6 中 已弃用

安装venv(Python3自带venv无需安装) 或 virtualenv

python -m pip install virtualenv

# linux下也可以使用apt工具下载
sudo apt install python3-venv

venv使用方式

virtualenv使用方式同venv

在Python项目的 根目录,指定一个文件夹,如:venvdir , 创建 局部Python虚拟环境,可以避免安装的模块,污染全局环境。

# 创建一个venv虚拟环境

python -m venv venvdir

在项目根目录,执行以下命令,进入 局部Python虚拟环境:

# 进入venv虚拟环境

# Linux 环境下,执行虚拟环境目录下的 bin/activate 文件
source venvdir/bin/activate

# Windows 环境下,执行虚拟环境目录下的 Scripts\activate.bat 文件
venvdir\Scripts\activate.bat

以后在虚拟环境,安装 依赖包 或者其他可独立执行的模块,都会保存在 venvdir 目录中。

退出当前虚拟环境: 直接执行命令:deactivate

当然,也可以把venv的虚拟环境目录,安装在项目的文件夹之外:

# 同时创建多个虚拟环境
python3 -m venv /tmp/venv1_py37 /tmp/venv2_py37

# 指定目录创建并进入虚拟环境(Linux环境)
python3 -m venv /home/yan/env3
source /home/yan/env3/bin/activate

5. 关于 venv、conda、anaconda、miniconda

6. 其他问题

实际python2使用virtualenv时可能报错:

RuntimeError: failed to build image wheel, pip because:
......下面就是一大波输出了......

加上参数 --no-setuptools --no-pip --no-wheel 即可。

python2 -m virtualenv myvenvpath --no-setuptools --no-pip --no-wheel

命令行中 python -v 和 python -V 详解 https://blog.csdn.net/weixin_40796925/article/details/103977569
venv --- 创建虚拟环境 https://docs.python.org/zh-cn/3/library/venv.html
Python虚拟环境pyenv、venv(pyvenv)、virtualenv之间的区别,终于搞清楚了! https://blog.csdn.net/lovedingd/article/details/106721585
未经允许不得转载:沙滩星空的博客 » 在Python环境使用venv局部虚拟环境隔离依赖模块

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址