Python 如何让setuptools从另一个源安装一个';在pypi上也有相同版本号的吗?

Python 如何让setuptools从另一个源安装一个';在pypi上也有相同版本号的吗?,python,pip,setuptools,distutils,easy-install,Python,Pip,Setuptools,Distutils,Easy Install,这是一个类似的问题,但不一样 由于我想使用某些软件包的分叉版本,setuptools会忽略依赖项链接(因为它具有相同的版本号) 有没有办法强制使用依赖项链接中的链接?或者,这是在分叉回购协议中更改版本号的唯一方法 requires = [ ... 'pyScss==1.1.3' ... dependencies = [ 'https://github.com/nadavshatz/pyScss/zipball/master#egg=pyScss-1.1.3' ]

这是一个类似的问题,但不一样

由于我想使用某些软件包的分叉版本,setuptools会忽略依赖项链接(因为它具有相同的版本号)

有没有办法强制使用依赖项链接中的链接?或者,这是在分叉回购协议中更改版本号的唯一方法

requires = [
    ...
    'pyScss==1.1.3'
    ...

dependencies = [
    'https://github.com/nadavshatz/pyScss/zipball/master#egg=pyScss-1.1.3'
]

更新


奇怪的是,如果此软件包是必需列表中唯一一个尚未安装的软件包,那么它显然可以工作。如果有另一个丢失的软件包,它将从pypi下载。

我相信您可以使用该问题中描述的
dependency\u链接

from setuptools import setup

setup(name = 'mypkg',
    version = '0.0.1',
    description = 'Foo',
    author = 'bar',
    author_email = 'bar@example.com',
      install_requires = ['pyScss==1.1.3'],
      dependency_links = [
      'https://github.com/nadavshatz/pyScss/zipball/master#egg=pyScss-1.1.3'
      ]
    )
使用
python setup.py develope进行测试

你可能想重新命名鸡蛋,以强调它是一个叉子

在setup.py之外,您可以使用
requirements.txt
pip
在本地强制执行此操作。虽然这不会使您的软件包依赖于fork,但您可以轻松地将其记录为安装方式

$ cat requirements.txt
https://github.com/nadavshatz/pyScss/zipball/master#egg=pyScss-1.1.3
$ pip install -r requirements.txt

最后,我做了一件与中的答案非常相似的事情

我需要一个名与PyPi中不同的
请求文件
包冲突的
请求文件
github包。它们都有1.0版,PyPi版本有一些更高的版本

my
ias_tools/setup.py
中的解决方法如下所示:

setup(
    ...
    install_requires=[
        'requests-file<=99.99',
    ],
    dependency_links=[
        'https://github.com/jvantuyl/requests-file/archive/b0a7b34af6e287e07a96bc7e89bac3bc855323ae.zip#egg=requests-file-99.99'
    ]
)

我不太担心弃用通知,也不太担心弃用通知(a之后)。

事实上,我就是这么做的。。。在
setup
调用i pass
install\u requires=requires
dependency\u links=dependencies
。这与您的代码基本相同。@IlyaBaryshev,很抱歉,我只使用更新中描述的解决方法。安装/更新所有软件包,然后卸载这个特定的软件包,然后它是唯一缺少的软件包-在这种情况下,它将从Dependencies获取链接,因为我正在编写一个软件包,所以它不是一个选项。我正在考虑出售我包中的所有依赖项,这似乎是考虑到错误的setuptools行为的唯一选项。这可能是解决您问题的一个方法吗:?我的build命令是
pip install--upgrade-e.
,我还需要添加
--进程依赖项链接
。谢谢你提供这条信息。
% pip install --process-dependency-links ./ias_tools
You are using pip version 6.0.6, however version 6.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Processing ./ias_tools
  DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release.
Collecting requests-file<=99.99 (from ias-tools==0.1)
  Downloading https://github.com/jvantuyl/requests-file/archive/b0a7b34af6e287e07a96bc7e89bac3bc855323ae.zip
Requirement already satisfied (use --upgrade to upgrade): requests>=1.1.0 in ./venv/lib/python2.7/site-packages (from requests-file<=99.99->ias-tools==0.1)
Installing collected packages: ias-tools, requests-file
  Running setup.py install for ias-tools
  Running setup.py install for requests-file
Successfully installed ias-tools-0.1 requests-file-1.0