【问题标题】:How do I effectively make changes to a 3rd party django app?如何有效地更改 3rd 方 django 应用程序?
【发布时间】:2018-11-13 01:51:51
【问题描述】:

我正在开发一个使用 django-leaflet 的 Django 应用程序,但这个问题适用于任何 python 库。我想更改一些 django-leaflet 代码,看看这些更改是否能解决我们遇到的问题。我有哪些选择?我是否需要在 django-leaflet 存储库中创建一个示例应用程序并在那里执行我的修改测试循环?还是我需要将 django-leaflet 的各个重命名版本上传到 pypi?

【问题讨论】:

  • 如果修改次数有限,最好执行monkey patching

标签: python django pypi


【解决方案1】:

您可以修改您的第 3 方应用程序,方法是使用 pip uninstall 将其卸载,然后将应用程序复制(或 git 克隆)到您的源代码树中。您可能需要临时将sys.path.append("./django-leaflet") 之类的行添加到您的manage.py 文件中,以便第三方模块在范围内。

一旦您对所做的更改感到满意,您可以将它们作为拉取请求发送给原作者,或上传您自己的应用版本。

【讨论】:

    【解决方案2】:

    您始终可以直接在 site-packages/ 中更改代码,尽管这需要对细节有一定程度的关注,以防止误伤自己。

    除此之外,您可以查看代码,然后从包含第 3 方包的 setup.py 的目录中执行

    pip install -e .
    

    (与python setup.py develop类似,但更好)

    这将在site-packages/ 中安装一个源链接,以便您可以在第 3 方包中执行修改/测试循环并在您自己的包中运行测试。

    优势在于您的更改将获得 VCS 支持。

    【讨论】:

      猜你喜欢
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 2013-08-17
      • 2012-01-14
      • 2016-11-11
      • 2019-12-16
      相关资源
      最近更新 更多