导入两个具有相同名称的python包以在同一项目中使用

时间:2019-07-05 17:20:12

标签: python module dependencies package dependency-management

我正在构建一个依赖于some_packagepip安装的conda(相当大)的应用程序。我想直接在应用程序中重用some_package的一部分;为此,我分叉了some_package,将其安装在本地,并根据需要修改了其功能。现在,该应用程序依赖于同一个名称相同的软件包的两个(不同的)版本,以实现不同的功能。

对于内部依赖性,如何引用pip / conda托管的~/anaconda3/envs/my_env/lib/python3.7/site-packages/some_package/,并在应用程序中使用修改后的~/my_project/dependencies/some_package/

关于堆栈溢出有几个问题,但是它们要么很旧,要么就不是一个相同的问题:

我尝试过的事情:

  • conda develop <local package path>:在这种情况下,站点包不可见并破坏了内部依赖性
  • 更改本地软件包文件夹的名称并导入:内部有对软件包名称的引用,这意味着到处重命名,如果我想在分支上添加新代码,还会造成管理混乱
  • 评论建议import some_package as package_dev:这显然不起作用,因为我无法一开始就同时引用这两个软件包

在链接的问题(及其他问题)中,有许多破解方法可以工作,但会以微妙的方式破坏导入系统(重新加载,更新软件包等)。是否有一种“ pythonic” /推荐的方式来实现这一目标?

0 个答案:

没有答案