簡體   English   中英

在 Python 中安裝本地附加組件

[英]Install local extras in Python

我的 package X 的 setup.py 使用 setuptools 通過extras_require參數選擇性地安裝額外的 package Y。

現在 package Y 從 PyPi 上消失了,據我所知,從可見的互聯網上消失了。 easy_install X[Y]失敗並error: Could not find suitable distribution for Y

但是,我仍然有 Y 的 tarball 的本地副本。 Y 是純 Python package。

修改 setup.py 以允許此(本地?)可選額外的最佳方法是什么?


編輯:修復是暫時的,直到我找到合適的替代品。 不想自己開始正式維護 Y :)

您可以將setuptools.Command子類化,然后重載默認install命令。 然后你可以讓 THAT 執行一個安裝依賴項的子進程。 這是一個黑客,但這就是你所要求的!

在 setup.py 中:

from setuptools import Command
class MyInstallCommand(Command):
    # Overload the 'install' command to do default install but also install
    # your provided tarball. Blah blah blah read the docs on what to do here.

setup(
    name='mypackage',
    # etc ... and then...
    # Overload the 'install' command 
    cmdclass={
        'install': MyInstallCommand, 
    }
)

我把它過分簡單化了,但這是基本要點。

我通過 setuptools 的dependency_links選項找到了一個快速的解決方法。

  1. 將 Y 的壓縮包上傳到一些 url http://URL_Y
  2. 在我的 setup.py 中添加以下行: dependency_links = ['http://URL_Y'],

現在easy_install X[Y]工作,我不必在任何地方注冊 Y。 一旦我有適當的修復,我會從 URL_Y 中刪除它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM