Python

2011-06-27 7 views
6

yerel sürümlerini yükleyin. Paketimin X kurulumu. extras_require parametresi aracılığıyla isteğe bağlı olarak bir Y paketini yüklemek için setuptools'u kullanır.Python

Artık Y paketi, PyPi'den ve anlayabildiğim kadarıyla görünür Internet'ten kayboldu. easy_install X[Y], error: Could not find suitable distribution for Y ile başarısız. Bununla birlikte, hala Y'nin tarball'unun yerel bir kopyasına sahibim. Y saf bir Python paketidir.

Bu (yerel?) Isteğe bağlı ekstraya izin vermek için setup.py dosyasını değiştirmenin en iyi yolu nedir?

DÜZENLEME: Düzeltme, uygun bir değiştirme işlemi yapana kadar geçici olmalıdır. Ben değil :) Y kendimi korumak resmen başlatmak için

cevap

1

Kurulum araçlarının dependency_links seçeneği ile hızlı bir çözüm buldum.

  1. Y'nin tarball'unu bazı URL http://URL_Y'a yükleyin.
  2. Satırımı ekleyin: dependency_links = ['http://URL_Y'], benim setup.py'ye.

Şimdi easy_install X[Y] çalışır ve Y'yi herhangi bir yere kaydettirmek zorunda değildim. Düzgün bir düzeltme yaptığım anda onu URL_Y'den silerim.

1

Sen setuptools.Command alt sınıf ve sonra varsayılan install komutu aşılmasına neden istiyorsun. Daha sonra, bağımlılığı yükleyen bir alt işlem yürütebilirsiniz. Bu bir hack, ama istediğin buydu! setup.py dosyası olarak

:

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

Ben fena halde bunu basitleştirerek, ama bu temel özü buydu.

+0

thx @jathanism, eğer problemler benim çözümümle gelirse bunu deneyeceğim (ağır topçu!) :) – Radim