2015-06-25 21 views
8

C kitaplığı sarıcıları olan bir Cython paketim var. BuCython tarafından oluşturulan .so dosyasının konumunu özelleştirme

python setup.py build_ext --inplace 

normalde çoğu durumda gerekli olan üst düzey package/ dizinde _wrap.so dosyayı koyar yapmak paketin

package/ 
     _api.pxd 
     _wrap.pyx 
     setup.py 
     wrapper/ 
       __init__.py 
       wrap.py 

ağaç yapıdır. Ancak, wrap.py benimdizinde _wrap.so gerekiyor. setup.py'un .so dosyasını istediğiniz yere manuel olarak kopyalayıp yapıştırmadan oluşturabileceği bir yol olup olmadığını merak ediyordum.

cevap

4

Üretilen .so dosyalarının çıktı klasörü, setuptools.Extension işlevinin ilk bağımsız değişkeni olarak belirtilebilir. İşte

, yardımcı

from setuptools import setup, find_packages, Extension 
from Cython.Distutils import build_ext 

ext_modules=[ 
    Extension("package.wrapper.wrap", # location of the resulting .so 
      ["package/wrapper/wrap.pyx"],) ] 


setup(name='package', 
     packages=find_packages(), 
     cmdclass = {'build_ext': build_ext}, 
     ext_modules = ext_modules, 
    ) 
+1

Eh, Cython uzantıları için bir örnektir. Daha önce "paket/sarıcı/sarma" deniyordum. Tanrı niçin inşa etmediğini biliyor. –

İlgili konular