本文介绍: 这里牵扯到一个python环境问题,如果一个系统存在python3.7和python3.8,如果我们使用pip3安装包,那么最终的依赖安装在3.7里还是3.8里呢?以前自己安装python的包依赖时,习惯使用pip install 或者pip3 install,但是最近看见很多工具安装脚本使用python进行安装,如下图所示b.在环境变量依赖库中发现pip目录,并且该路径存在__main__.py,也就是说python3 –m pip作用就是执行这里__main__.py文件

0X01 背景

以前自己安装python的包依赖时,习惯使用pip install 或者pip3 install,但是最近看见很多工具的安装脚本使用python进行安装,如下图所示

我就寻思,这样写有什么好处呢?

0X02 研究

1.python3 后的-m参数什么作用呢?

在Python中,-m参数用于运行指定模块作为脚本。它允许直接从命令行运行Python模块,而不需要显式编写一个完整的脚本文件。

当在命令行执行python3 –m <module>时,Python解释器搜索并执行指定模块。它会查找模块运行模块中的__main__函数

2.python3 –m执行脚本和直接python3 XXXXXXX.py的好处是?

使用m参数的好处是,无需在命令行中提供完整脚本路径或在模块文件中编写繁琐的启动代码。只需要提供模块名称,Python解释器自动找到并执行它。

3.python3 –m pip的执行过程什么样的呢?

a.首先,我们查看python3的环境变量

b.在环境变量依赖库中发现pip目录,并且该路径下存在__main__.py,也就是说python3 –m pip的作用就是执行这里__main__.py文件

4.pip3 install的执行过程什么样子的呢?

如下所示pip3的调用其实是把py文件的pip3转换成二进制文件的pip3,并添加到了系统环境变量

5.python3 –m pip和pip3安装的安装的好处?

这里牵扯到一个python环境的问题,如果一个系统存在python3.7和python3.8,如果我们使用pip3安装包,那么最终的依赖是安装在3.7里还是3.8里呢?

但是使用python安装就不会遇到这个问题,我们可以使用python3.8 –m pip install,这样就规避了python环境冲突问题。

如果是我们的系统我们很清楚自己电脑的python环境,pip3 install就极为简单。但是工具的开发者在撰写创建脚本时,他需要考虑安装者系统的python的环境部署问题,这里再次看下开发人员写的脚本逻辑:

a.安装python3,因为使用者linux系统中可能并不具备python3环境,如果具备,那就再重新安装覆盖

b.安装python3中pip模块,用于python的包管理,–fixmissing表示自动修复依赖缺失,-y表示默认都是yes

c.安装python3的setuptools,该工具可以打包python项目生成可执行文件,这里并没有什么作用

d.安装tmux,为了命令行炫酷,没什么作用

e.这里并不清楚pip3二进制文件是否存在,以及是否具备环境变量的问题,所以选择python3指定版本和包更新

f.后续就是利用python执行pip进行安装包一个过程

原文地址:https://blog.csdn.net/Dawn3AM/article/details/131269529

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_34298.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注