2种包管理工具:pip和pipenv

一、pip简介

pip 是 Python 的包安装器,它用于安装和管理 Python 包,它通过requirements.txt文件来管理项目所依赖的包

1、生成requirements.txt文件:pip freeze > requirements.txt

2、安装requirements.txt依赖:pip install -r requirements.txt

3、激活虚拟环境:source myenv/bin/activate

 

二、pipenv简介

pipenv 是一个Python开发工作流的包管理工具,它旨在为项目提供更好的依赖管理和环境隔离。

1、Pipfile

Pipfile 是一个TOML(Tom's Obvious, Minimal Language)格式的文件,它记录了项目的直接依赖(类似于 requirements.txt),同时提供了更多的元数据和一个更易读的格式。在 Pipfile 中,你可以指定包的版本号,也可以选择使用版本范围或者星号(*)来允许更灵活的版本更新。

2、Pipfile.lock

Pipfile.lock 是由 pipenv 自动生成的一个JSON格式的文件,它包含了所有依赖(包括间接依赖)的精确版本号和哈希值。这个文件的目的是确保在不同环境中安装相同版本的依赖,以此来提供一致的开发、测试和生产环境。 

3、对于新创建的项目

(1)初始化虚拟环境和Pipfile: 在项目的根目录下运行 pipenv 命令将会自动创建一个虚拟环境(如果尚未存在)和一个新的 Pipfile。如果你已经知道你的项目将会使用哪个Python版本,你可以指定这个版本:

pipenv --python 3.8
 这个命令将会创建一个使用Python 3.8版本的虚拟环境。如果你不指定版本,pipenv 将使用系统中的默认Python版本。
 
(2)安装项目依赖: 通过 pipenv install 命令安装项目的第一个包,Pipfile 将会被更新,同时 Pipfile.lock 也会被创建:
pipenv install requests
 这个例子中,requests 是作为项目依赖被安装的一个示例Python包。你可以替换成你项目实际需要的任何包。
 
(3)生成Pipfile.lock: 当你通过 pipenv install 安装包时,Pipfile.lock 会自动生成。你也可以通过下面的命令手动生成或更新它:
pipenv lock
 这个命令会基于 Pipfile 中的内容生成或更新 Pipfile.lock 文件,确保所有依赖的版本都被锁定。

以上步骤完成后,你的项目目录下应该会有一个 Pipfile 和一个 Pipfile.lock 文件,分别记录了项目的直接依赖和所有依赖的具体版本信息。这样,其他人在使用 pipenv install 命令时,就会根据 Pipfile.lock 中锁定的版本来创建相同的开发环境。

4、使用Pipfile和Pipfile.lock

(1)先安装pipenv,并添加 pipenv 到环境变量,安装方法参考【三-2、3】

注意:是全局安装 pipenv,然后用它为项目创建虚拟环境,而不是先创建1个虚拟环境,然后在虚拟环境中把pipenv当作1个包进行安装,因为并不符合 pipenv 设计的初衷。pipenv 旨在自动管理虚拟环境,而不是在已有的虚拟环境中运行

(2)下载了一个新项目后,项目中已经有Pipfile 和 Pipfile.lock,可以使用以下命令来安装 Pipfile 中指定的依赖:
pipenv install

这个命令会创建一个新的虚拟环境(如果尚未创建),并在该环境中安装 Pipfile 中列出的所有包。如果存在 Pipfile.lockpipenv 将根据锁文件中的精确版本来安装依赖,以确保环境一致性。

(3)安装新包并更新 Pipfile 和 Pipfile.lock,可以使用:

pipenv install <package>
(4)卸载包并从 Pipfile 和 Pipfile.lock 中移除,可以使用:
pipenv uninstall <package>
(5)如果你想激活虚拟环境,可以使用:
pipenv shell
 

三、pipenv初始化项目

1、确认是否已安装 pipenv: 
pip show pipenv
如果命令返回了 pipenv 的信息,那么 pipenv 已安装。如果没有返回任何信息,那么你需要安装 pipenv
2、安装 pipenv:
如果 pipenv 还没��安装,你可以使用 pip 来安装它。由于你正在使用 zsh,建议使用以下命令以确保 pipenv 安装到用户级别的目录,避免需要管理员权限:
pip install --user pipenv
3、添加 pipenv 到环境变量:安装 pipenv 后,确保 pipenv 的可执行文件路径已添加到你的环境变量中。
(1)查找pipenv的安装目录:
pip show pipenv

这个命令会显示 pipenv 包的详细信息,包括它的安装位置。查找 Location: 行,它会告诉你 pipenv 的安装目录。

(2)确定pipenv可执行文件的目录:
通常,pipenv 的可执行文件位于该安装目录的 bin 子目录下,eg:
如果 Location: 显示的路径是 

/Users/admin/Library/Python/3.7/lib/python/site-packages
那么 pipenv 的可执行文件可能位于 

/Users/admin/Library/Python/3.7/bin
 
 (3)添加到环境变量:编辑 ~/.zshrc 文件,添加:
export PATH="/Users/admin/Library/Python/3.7/bin:$PATH"
 保存并关闭后运行:
source ~/.zshrc

4、确认pipenv的可执行文件已经被正确添加到环境变量中

which pipenv
这个命令会输出 pipenv 可执行文件的完整路径,如果 pipenv 已经正确安装并且路径已经添加到环境变量中。

如果 which 命令没有返回任何输出,这可能意味着 pipenv 没有安装,或者其安装路径没有添加到环境变量中。在这种情况下,您可以尝试使用 pip 查找 pipenv 的安装位置:

 5、使用pipenv创建一个新的虚拟环境

打开终端导航到项目的根目录,分别运行 以下命令
pipenv --python 3.10
pipenv install
pipenv --python 3.10 来创建一个新的虚拟环境。如果已经存在与 Pipfile 匹配的 Python 版本的虚拟环境,pipenv 将会复用它,而不是创建一个新的。
pipenv install 来根据 Pipfile.lock 安装所有依赖。这将确保你的虚拟环境中的依赖与项目需要的依赖一致

 6、激活虚拟环境,并查看安装的所有包

pipenv shell
pip list

pipenv shell 会激活虚拟环境,使您进入到虚拟环境的 shell 中。在这个 shell 中,您可以直接运行 pip list 来查看所有已安装的包,就像在普通的系统环境中一样。

7、在PyCharm 中将这个虚拟环境设置为你的项目解释器

打开 PyCharm,转到 File > Settings(或者 PyCharm > Preferences 在 macOS 上)。
在 Project: <你的项目名> > Python Interpreter 中。
点击齿轮图标,选择 Add。
在弹出的窗口中,选择 Pipenv Environment。
PyCharm 将自动检测到 Pipfile 并提供创建虚拟环境的选项。由于你已经通过命令行创建了虚拟环境,PyCharm 也应该能够识别它。
选择合适的虚拟环境后,点击 OK。
这样,你就可以在 PyCharm 中使用 pipenv 创建的虚拟环境,并享受 PyCharm 提供的所有功能,比如代码完成、调试等。同时,你也保留了 pipenv 提供的依赖管理和环境一致性的好处。
 
 
posted @ 2024-03-22 20:04  一路向北321  阅读(543)  评论(0编辑  收藏  举报