【发布时间】:2020-07-28 07:06:05
【问题描述】:
我有一个 Python 包,它在 pypi 中发布,可以通过pip install 安装。
我想在那个包中做一些小改动,这些改动只对我的 Pycharm 项目 A 有用。我希望这些改动会非常频繁,所以我希望能够即时进行这些改动。
我知道我可以通过执行以下步骤来处理该项目/包的本地副本:
-
执行
git clone -
将该代码用作单独的 Pycharm 项目 B
-
在我自己的项目A中,我写:
import sys sys.path.insert(0, '/path/to/second_pycharm_project') import project_name
现在我可以在 Pycharm 项目 B 中进行代码更改,并且执行项目 A 正好反映了这一点。
不过,我有一些限制:
- 无法通过这种方式在 Pycharm 中查找变量/代码。
- 在项目 B 中设置断点必须在项目 A 中完成,并且似乎只有在调试期间输入 B 的代码时才有效。
我的问题是:
还有其他(更好的)方法可以在 Pycharm 中使用另一个项目吗?
(我想直接在我的虚拟环境中更改pip install复制的代码,但这对我来说似乎非常不干净和危险,以防我的更改被pip install意外覆盖)
【问题讨论】:
-
在 A 的 virtualenv 上克隆 B 然后
pip install -E怎么样?这是一个本地可编辑安装,并将 B 放在 A sys.path 中。分支 B,这样您就可以对 git origin 进行编辑。不要使用 pycharm,所以不确定它的项目是如何工作的,但它比硬编码注入 sys.path 更像 Pythonic -
感谢您的提示。我支持你,与硬编码注入相比,这使它更具 Pythonic。但我的两个主题仍然存在。
-
所以即使它现在在 sys.path 上,pycharm 也不会拾取模块?在那里帮不了你,我已经在为崇高的项目而苦苦挣扎。虽然... pycharm 中有 add directory to project 功能吗?
-
是的,你是对的。这似乎已经是解决方案。非常好。这帮助很大。
-
好吧,如果你愿意,你可以接受我输入的答案。也许评论实际的 pycharm 命令是什么。不确定它会起作用,但认为它可能会起作用。