2011-06-27 25 views
6

setup.py của gói X của tôi sử dụng setuptools để tùy chọn cài đặt thêm gói Y, thông qua tham số extras_require.Cài đặt các tính năng bổ sung cục bộ bằng Python

Bây giờ gói Y đã biến mất khỏi PyPi và, theo như tôi có thể biết, từ Internet hiển thị. easy_install X[Y] không thành công với error: Could not find suitable distribution for Y.

Tuy nhiên, tôi vẫn có bản sao cục bộ của tarball của Y. Y là một gói Python thuần túy.

Cách tốt nhất để sửa đổi setup.py để cho phép tùy chọn này (địa phương?) Bổ sung là gì?


EDIT: Khắc phục có nghĩa là tạm thời, cho đến khi tôi tìm ra sự thay thế phù hợp. Tôi làm không phải muốn bắt đầu chính thức duy trì Y bản thân mình :)

Trả lời

1

Tôi đã tìm thấy cách giải quyết nhanh chóng qua tùy chọn thiết lập dependency_links của công cụ thiết lập.

  1. Tải tarball của Y lên một số url http://URL_Y.
  2. Thêm dòng: dependency_links = ['http://URL_Y'], vào setup.py của tôi.

Hiện tại easy_install X[Y] hoạt động và tôi không phải đăng ký Y ở bất kỳ đâu. Tôi sẽ xóa nó khỏi URL_Y ngay khi tôi có bản sửa lỗi thích hợp.

1

Bạn có thể phân lớp setuptools.Command và sau đó quá tải lệnh mặc định install. Sau đó, bạn có thể có THAT thực hiện một tiến trình con cài đặt phụ thuộc. Đó là một hack, nhưng đó là những gì bạn đã yêu cầu!

Trong 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, 
    } 
) 

Tôi hiển nhiên quá đơn giản nó, nhưng đây là ý chính cơ bản.

+0

thx @jathanism, nếu sự cố xảy ra với giải pháp của tôi, tôi sẽ thử cái này (pháo hạng nặng!) :) – Radim

Các vấn đề liên quan