26

これは、 How can I make setuptools install a package that's not on PyPI?と同様の質問です。しかし、同じではありません。

一部のパッケージのフォークされたバージョンを使用したいので、setuptools は依存リンクを無視します (バージョン番号が同じであるため)。

dependency_links からのリンクを強制的に使用する方法はありますか? それとも、フォークされたリポジトリでバージョン番号を変更する唯一の方法ですか?

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

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

アップデート

奇妙なことに、このパッケージがまだインストールされていない必要なリストの唯一のパッケージである場合、明らかに機能します。他に不足しているパッケージがある場合は、pypi からダウンロードします。

4

2 に答える 2

10

dependency_linksその質問で説明されているように使用できると思います:

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 develop

おそらく卵の名前を変更して、それがフォークであることを強調したいと思うでしょうhttp://www.python.org/dev/peps/pep-0386/

requirements.txtsetup.py の外では、とを使用してローカルでこれを強制できますpip。これにより、パッケージがフォークに依存することはありませんが、インストール方法として簡単に文書化できます。

$ cat requirements.txt
https://github.com/nadavshatz/pyScss/zipball/master#egg=pyScss-1.1.3
$ pip install -r requirements.txt
于 2012-06-14T15:06:00.330 に答える
8

私は、 stackoverflow.com/a/17442663/368102の答えと非常によく似た何かをすることになりました。

PyPirequests-fileの別のパッケージと名前が競合する github パッケージが必要です。requests-fileどちらにもバージョン 1.0 があり、PyPi バージョンにはいくつかの上位バージョンがあります。

私の回避策は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'
    ]
)

私の場合、私は使用してpipいるので、以下も使用する必要がありました--process-dependency-links:

% 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

非推奨を非推奨にするためにプルリクエストが pip に送信されたので(それについての議論の後)、私は非推奨の通知についてあまり心配していません。

于 2015-04-16T17:45:07.193 に答える