Как мне упаковать неизмененное расширение C как часть моего нового пакета Python? - PullRequest
0 голосов
/ 01 марта 2011

Я выпустил новую версию пакета Python для Pypi без изменения расширения C.Поскольку я изменил только код Python, а не код C, как мне упаковать общие библиотеки, которые я скомпилировал для нескольких платформ, без перекомпиляции?

1 Ответ

1 голос
/ 02 марта 2011

В качестве примера для библиотеки под названием 'somelib' с скомпилированными библиотеками в двух подкаталогах lib-i386 и lib-amd64:

MANIFEST.in содержит следующее:

include __init__.py
include setup.py
include somelib/*
include somelib/lib-i386/*
include somelib/lib-amd64/*

setup.py содержит (я пропустил строки, несущественные для проблемы управления версиями):

# Determine machine arhitecture
arch = os.uname()[4]
libname = "lib-%s" % (arch,)
lib_files = glob.glob('./somelib/' + libname + '/*')
data_files = [('somelib', 
              lib_files + ['__init__.py', 'somelib/README.TXT']),]

setup(
   ... 
   data_files=data_files
)

Все объекты библиотеки находятся внутри пакета, но установлены только те, которые относятся к 'arch'.

HTH.

...