【问题标题】:What is the best way to work privately on pypi released package within Pycharm?在 Pycharm 中私下处理 pypi 发布包的最佳方式是什么?
【发布时间】:2020-07-28 07:06:05
【问题描述】:

我有一个 Python 包,它在 pypi 中发布,可以通过pip install 安装。

我想在那个包中做一些小改动,这些改动只对我的 Pycharm 项目 A 有用。我希望这些改动会非常频繁,所以我希望能够即时进行这些改动。

我知道我可以通过执行以下步骤来处理该项目/包的本地副本:

  1. 执行git clone

  2. 将该代码用作单独的 Pycharm 项目 B

  3. 在我自己的项目A中,我写:

     import sys
     sys.path.insert(0, '/path/to/second_pycharm_project')
    
     import project_name
    

现在我可以在 Pycharm 项目 B 中进行代码更改,并且执行项目 A 正好反映了这一点。

不过,我有一些限制:

  1. 无法通过这种方式在 Pycharm 中查找变量/代码。
  2. 在项目 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 命令是什么。不确定它会起作用,但认为它可能会起作用。

标签: python pycharm


【解决方案1】:

然后在 A 的 virtualenv 上克隆 B 的 pip install -e .(在 B 的 setup.py 目录中进行)。这是一个本地可编辑安装,并将 B 放在 A sys.path 中。

Git 分支 B,因此您可以进行本地 B 编辑,不会影响其 git 起源(但如果您愿意,以后仍可以合并它)。

在 Pycharm 中使用 Settings | (current) Project | Project Structure | Add Content Root 将另一个项目 B 添加到您的主项目 A 中。

(请确保您跟踪本地 B 的更改,因为如果您要在另一台机器上复制您的工作并再次 git clone B,则此处不会这样做)。

备注:必须是小-e,而不是大-E

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-02
    • 1970-01-01
    • 2021-11-25
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    相关资源
    最近更新 更多