在 windows 上使用 virtualenv 或 pipenv 管理 python 项目与依赖

virtualenvpipenv 都是管理 python 项目和依赖的工具,二者的目的都是为不同的 python 项目创建独立的虚拟开发运行环境,使得在同一台计算机上,这些不同的项目可以使用不同的 Python 版本以及不同的 package 版本,项目之间互不冲突,彼此独立。

virtualenv 是以前的标准。pipenv 由于更简单好用一些,已经取代 virtualenv 成了目前管理 python 项目与依赖的新标准。

PC 上只装了一版 Python:3.10.5

1 virtualenv 用法

1.1 安装 virtualenv:

pip install virtualenv

1.2 为项目创建虚拟环境

进入项目文件夹,运行如下命令:

virtualenv venv
D:\milestone4-scraping-books>virtualenv venv
created virtual environment CPython3.10.5.final.0-64 in 566ms
  creator CPython3Windows(dest=D:\milestone4-scraping-books\venv, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=C:\Users\yanchun\AppData\Local\pypa\virtualenv)
    added seed packages: pip==22.1.2, setuptools==62.6.0, wheel==0.37.1
  activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

这里 venv 是虚拟环境的名称,此命令将在当前路径生成一个文件夹 venv
在这里插入图片描述

1.3 启用虚拟环境

运行文件 venv\Scripts\activate.bat,将启用虚拟环境。

D:\milestone4-scraping-books>.\venv\Scripts\activate.bat
(venv) D:\milestone4-scraping-books>

左边出现的 (venv) 说明已进入虚拟环境,当前正在使用此虚拟环境。

1.4 在虚拟环境中安装若干必要依赖项

例如,运行命令:

pip install packages
pip install beautifulsoup4

1.5 导出依赖项版本

使用以下命令:

pip freeze

查看已经安装的所有 package 及其版本:

(venv) D:\milestone4-scraping-books>pip freeze
certifi==2022.6.15
charset-normalizer==2.1.0
idna==3.3
requests==2.28.1
urllib3==1.26.9

pip freeze 的结果写到一个名称为 requirements.txt 的文件中是通用做法,方便开发人员查看版本信息:

pip freeze > requirements.txt

1.6 使用 requirements.txt 复制虚拟环境

只要有 requirements.txt 文件,就可以为项目复制相同的开发运行环境。
项目使用者可以使用以下命令安装全部需要的安装包:

pip install -r requirements.txt

1.7 停用虚拟环境

运行文件 venv\Scripts\deactivate.bat,将停用虚拟环境。

2 pipenv 用法

要使用 pipenv,要删除工程中的 venv 文件夹,并退出虚拟环境,然后安装此 tool。

2.1 安装 pipenv

pip install pipenv

2.2 安装 package

进入工程目录,安装项目必要的 package, 例如:

pipenv install requests

首次运行命令 pipenv install some_package_name 将自动创建一个虚拟环境,所在路径由 pipenv 指定,不在项目文件夹中,由命令输出可以看出在什么路径。
同时项目文件夹中将生成两个文件: PipfilePipfile.lock, 这两个文件类似于 package.jsonpackage-lock.json

如果工程文件夹中已经存在 requirements.txt,可以直接运行命令:

pipenv install

但这种方法,测试多次,生成 Pipfile.lock 一直失败,原因未知。

2.3 在虚拟环境中运行 app:

安装所需的第三方库后可以在虚拟环境中运行 app:

pipenv run python my-python-app.py

不同于 virtualenv 工具, 不再需要运行 active.bat 以及 deactive.bat

2.4 pipenv: 如果改变了项目所在路径,必须重新创建虚拟环境

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值