首页 > 解决方案 > 从源代码运行python项目时,如何避免与已安装的包冲突

问题描述

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

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

我遇到的问题是,它在项目源内部导入了自己的包,该包正在导入已安装的包而不是源项目,并且在某些情况下会导致代码冲突

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

我可以浏览源代码并更改 with 的每个实例,import PackageA as pa但这from .. import PackageA as pa可能发生在 100 多个文件中,因为有些文件有多个 import 语句,而且它也非常不整洁,因为有些文件位于需要from .... import PackageA as pa.

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

我对python(不是软件开发)相当陌生,所以这种类型的设置是否有最佳实践,因为我确信它相当普遍。

标签: pythonipythonpython-importpython-module

解决方案


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


推荐阅读