为何执行git clone后还需运行pip3 install?
git clone之后还需要pip3 install? 嘿,刚接触git和Python包管理的话,确实会对这两步的作用感到困惑,我来给你掰扯清楚:
首先,git clone到底做了啥?
git clone ssh://git@bitbucket.company.net:{number}/~js/company-libraries /tmp/company-libraries 这个命令的作用很简单:把公司Bitbucket服务器上的代码仓库,完整复制一份到你本地的/tmp/company-libraries目录里。
这就好比你把同事电脑里的一个项目文件夹,通过U盘拷到了自己电脑的临时文件夹里——现在你本地有了这个库的源代码,但Python还完全不知道这个东西的存在,也没法直接用它。
那pip3 install在做什么?
sudo -H pip3 install /tmp/company-libraries/CompanyLibraries 这一步才是真正把这个库“安装”到你的Python环境里,具体做了这些事:
- 读取
CompanyLibraries目录里的包配置文件(比如setup.py或者pyproject.toml),了解这个库的基本信息:比如它叫什么、依赖哪些其他Python包、要安装哪些模块文件。 - 把库里的Python模块、资源文件等,复制到你的Python环境的
site-packages目录(这是Python默认查找第三方库的专属目录)。 - 自动处理依赖:如果这个公司库需要其他Python包才能运行,pip会帮你自动下载并安装那些依赖。
- (如果库有可执行脚本)还会把这些脚本添加到系统的可执行路径里,让你在终端任何位置都能直接调用。
既然CompanyLibraries目录已经存在,为啥还要安装?
虽然你本地有了这个文件夹,但Python不会自动去/tmp这种临时目录里找库。如果这时候你直接写代码import CompanyLibraries,Python会报错说找不到这个模块——因为它只认site-packages里的东西。
安装之后,这个库就变成了你Python环境的“正式成员”:不管你在哪个目录写代码,都能直接导入使用;而且所有依赖也都帮你配齐了,不用手动去一个个装。
举个生活化的例子:git clone就像是你把软件安装包下载到了桌面,而pip3 install就是双击安装包完成安装——只有安装完,软件才能被系统识别,正常运行。
内容的提问来源于stack exchange,提问作者Sorath

