运行 python project from source时,如何避免与安装包冲突

When running python project from source, how to avoid conflict with installed package

我一直在 Jupyter Notebook IPython 环境中使用通过 pip 和 运行 安装的开源包。

我需要修改包的源,所以我在本地克隆了 repo 并进行了更改,并导入了本地包而不是已安装的包,没有问题。

我遇到的问题是,在项目源代码中,它导入了自己的包,该包正在导入已安装的包而不是源项目,在少数情况下会导致代码冲突.

假设包名为 PackageA,最初是通过 pip install PackageA 安装的。我现在在项目目录下的 libs/ 目录中有 Package A 的源代码。 projectDir/libs/PackageA。我正在通过 from libs.PackageA import PackageA as pa 导入项目,但是在源代码中(几乎在每个文件中)它都有 import PackageA as pa.

我可以查看源代码并将 import PackageA as pa 的每个实例更改为 from .. import PackageA as pa 但这可能发生在 100 多个文件中,因为有些文件有多个导入语句,而且它也很不整洁,因为有些文件在需要 from .... import PackageA as pa 的子目录中。

有没有办法重定向导入以使用本地版本而不是安装版本(我已经卸载了pip安装版本)。

我对 python(不是软件开发)还很陌生,所以这种设置是否有最佳实践,因为我确信它很常见。

您可以在项目开始前添加 sys.path.append("../libs")