【问题标题】:python packages: how to depend on the latest version of a separate packagepython包:如何依赖最新版本的单独包
【发布时间】:2012-02-11 02:21:22
【问题描述】:

我正在开发一个测试 django 站点的代码,我将其保存在 bitbucket 存储库中,以便能够轻松地将其部署到远程服务器上,并可能与朋友分享开发。我使用 hg 进行版本控制。

该站点依赖于第 3 方应用程序 (django-registration),我需要为我的站点进行自定义,因此我分叉了原始应用程序并为其创建了第二个存储库(想法是这样我可以跟上对原始版本进行更新,如果我只是将代码粘贴到我的主站点中,并添加到我自己的自定义代码中,这是不可能的)(您可以在 question 上查看更多详细信息)

我的问题是,如何在 setup.py 文件中指定要求,以便在安装 django 站点时获得用于 3rd 方应用程序的最新版本的 fork(我使用分发而不是 setuptools,以防有区别)?

我试过这个:

install_requires = ['django', 'django-registration'],
dependency_links = ['https://myuser@bitbucket.org/myuser/django-registration#egg=django_registration']

但这让我得到了原始树干上最新的命名版本(所以甚至没有提示版本)

但是使用 pip 需求文件效果很好:

hg+https://myuser@bitbucket.org/myuser/django-registration#egg=django-registration

从我的 fork 中获取最新版本。

有没有办法直接从 setup.py 文件中获得相同的行为,而不必先安装站点代码,然后运行 ​​pip install -r requirements.txt?

这个question 信息量很大,但似乎建议我应该依赖版本“dev”或第 3 方包,这是行不通的(我想必须有一个特定的版本标记为 dev )

我也是打包/分发/设置工具的新手,所以不要忍住拼写步骤:)

也许我应该更改我的第 3 方应用程序分支上的 setup.py 文件,并确保它提及版本号。一般来说,我很想知道什么是源代码分发,而不是简单地将我的代码放在公共存储库上,在我的情况下什么是二进制分发(一个鸡蛋文件?),以及这是否更实用我在远程部署时/让我的朋友在他的电脑上部署。并且还想知道如何在我的存储库上标记一个版本以便 setup.py 引用它,它只是一个版本控制标记(在我的情况下是 hg)吗?随意评论您认为对入门打包程序很重要的任何细节:)

谢谢!

【问题讨论】:

    标签: python packaging setuptools pip distribute


    【解决方案1】:

    这样写:

    dependency_links=['https://bitbucket.org/abraneo/django-registration/get/tip.tar.gz#egg=django-registration']
    

    在dependency_links 中,您必须传递一个类似的下载网址。

    “abraneo”也是这个项目的一个分支,用你的名字代替他的名字。

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 2023-03-25
      • 2019-01-11
      • 1970-01-01
      • 1970-01-01
      • 2023-01-02
      • 2015-07-28
      • 2013-08-02
      • 1970-01-01
      相关资源
      最近更新 更多