2010-01-27 22 views
8

Özel bir python oluşturmanın son adımı olarak, bir myproject.pth eklemem gerekiyor.setup.py: sadece bir pth dosyası mı yüklüyorsunuz?

install: 
     rm -f   ../../lib/python2.6/site-packages/myproject.pth 
     cp myproject.pth ../../lib/python2.6/site-packages/myproject.pth 

ama setup.py dosyası bu enkapsüle istiyorum:

Şu anda bir Makefile yapıyorum. Maalesef, setup.py dokümanları bu önemsiz vakayı kapsamıyor gibi görünmüyor! Herhangi bir yardım takdir edildi. Bu çalıştı ama çalışmıyor: kurulumu için data_files parametre için aradığınız

from setuptools import setup 
setup(
    packages=['mypackage_pth'], 
    package_dir={'mypackage_pth': '.'}, 
    package_data={'mypackage_pth': ['mypackage.pth']}, 
) 
+0

.pth dosyasının yeni konumunu biliyorsanız, kurulum (...) işlevinden sonra el ile kopyalayabilirsiniz. Örneğin, kapatma modülü ile. * Düzenle: * Oww .. Bu soru bir yaşında. – svenwltr

cevap

5

:

from distutils import sysconfig 
site_packages_path = sysconfig.get_python_lib() 

setup(..., 
    data_files=[(site_packages_path, ["mypackage.pth"])] 
) 
+0

Eksik olduğum anahtar, get_python_lib() 'idi. Büyük bahşiş! – bukzor

+0

Bu benim için çalışmadı. Yol yapılandırma dosyaları ('* .pth') 'paket-paketleri' değil, bir paketin içine kopyalanır. Neyin yanlış gidebileceğini biliyor musun? – astronaut

+0

Sizin durumunuzda site_packages_path nedir, @astronaut? – stderr

1

stderr'e cevabı uyarlanmıştır. Bunu yapmak için varsayılan varsaydığınızdan emin değilsiniz, ancak çalışır.

from distutils import sysconfig 
site_packages_path = sysconfig.get_python_lib() 

import shutil 
shutil.copy('mypackage.pth', site_packages_path) 

setup(...) 
İlgili konular