python - 导入两个同名的python包在同一个项目中使用
问题描述
我正在构建一个依赖于some_package
(相当大)的应用程序,它是通过pip
or安装的conda
。我想some_package
直接在应用程序中重用部分;为此,我已经 fork some_package
,在本地安装了它,并根据需要修改了它的功能。该应用程序现在依赖于相同名称的同一包的两个(不同)版本以实现不同的功能。
如何引用内部依赖的pip
/conda
管理~/anaconda3/envs/my_env/lib/python3.7/site-packages/some_package/
,以及 ~/my_project/dependencies/some_package/
在我的应用程序中使用的修改?
Stack Overflow 上有几个问题,但它们要么很老,要么不是同一个问题:
我试过的:
conda develop <local package path>
:在这种情况下,站点包不可见并破坏了内部依赖关系- 更改本地包文件夹的名称并导入:有对包名称的内部引用,这意味着在任何地方重命名,如果我希望在 fork 上提取新代码,则会造成管理混乱
- 建议的评论
import some_package as package_dev
:这显然行不通,因为我一开始就无法引用这两个包
在链接的问题(和其他问题)中,有许多黑客可以工作,但会以微妙的方式破坏导入系统(重新加载,用于包更新等)。有没有“pythonic”/推荐的方法来完成这个?
解决方案
推荐阅读
- sql - Oracle SQL - 根据签入和签出记录获取日期之间的差异
- c# - 我正在寻找在 c# 中使用 azure 凭据生成访问令牌
- hungarian-algorithm - 匈牙利算法(赋值模型)
- javascript - Maker.js 将 dxf 字符串作为文件导出到用户所需的位置
- postgresql - 栏目 <
> 在插入查询中为 Postgresql 使用 ADO-NET 连接时未找到 - calendly - calendly iframe 嵌入响应数据
- ruby-on-rails - 将 Act as Votable 与分页、未定义方法一起使用
- javascript - ReactNative/Expo 错误,元素类型无效?
- php - 调用未定义的方法 Smalot\PdfParser\Encoding::__toString()
- aws-glue - 从 Athena 控制台访问胶水表