缘由
由于我的代码有一部分到处复制粘贴,维护起来不方便。因此需要把一些python共用地方比较多的代码集中到一个地方,方便其他代码引用,并且方便维护。
在本地开发的时候,需要让库的开发目录以软链接的形式安装到venv/lib
里面,目的是为了变更第三方库代码的时候,不需要重新安装而实时生效,毕竟也不见得每次都会记得去重新安装修改代码之后的库。
文档看了一圈,发现有一个方法甚至连软链接都不需要创建就可以实现同样的效果,那就是使用easy-install.pth
,这个文件其实也记录着python搜索三方库的路径,python运行的时候会自动去这个文件记载的路径搜索第三方库,并且pip也支持安装这个路径。
参考文档:https://svn.python.org/projects/sandbox/branches/setuptools-0.6/EasyInstall.txt
操作
在Python中,通常使用pip
作为包管理器来安装第三方库。如果您想通过pip
只安装软链接而不是实际的文件副本,可以使用以下命令:
pip install -e <path_to_package_directory>
pip install -e
命令用于在编辑模式下安装软件包,它允许您以可编辑模式安装软件包,从而可以直接编辑其中的源代码并进行调试。其原理就使用了easy-install.pth的作用,其实它就是把包目录写入site-packages下的easy-install.pth
文件,再创建一个包名.egg-link
的软链接文件而已。
这个特性在开发过程中非常有用,特别是希望对软件包进行修改或自定义时。
相应的包目录其实是一个包定义目录,里面必须包含有setup.py
,说明了这个包是如何构建的。
如我的用例:
0.基础能力> pip install -e xflib
安装完成之后,打开site-packages
下的easy-install.pth
,发现神奇。
以这个文件同级下还有个xflib.egg-link
,说明这是一个软链接的三方包。