2015-10-11 49 views
1

我有形式NumPy的setuptools的:如何編譯Fortran文件作爲一個模塊

setup.py 
python/ 
    __init__.py 
    a.py 
    b.f 

我想安裝此作爲一個叫做foo與結構

site-packages/ 
    foo/ 
    __init__.py 
    a.py 
    b.so 
包的目錄結構的一部分

但我不知道如何寫setup.py爲了實現這一目標。到目前爲止,我有

import numpy.distutils.core 
b = numpy.distutils.core.Extension(name = 'b', sources = ['python/b.f']) 
numpy.distutils.core.setup(
    name = 'foo', 
    version = '0.0', 
    packages = ['foo'], 
    package_dir = {'foo':'python'}, 
    ext_modules = [b] 
) 

但這會導致

site-packages/ 
    foo/ 
    __init__.py 
    a.py 
    b.so 

所以很明顯我在這裏失去了一些東西。 b.so如何進入foo軟件包,而不是作爲單獨的軟件包安裝?

回答

1

要告訴setuptools給定的擴展模塊應作爲包的一部分安裝(例如foo)而不是單獨安裝,只需將foo.作爲其名稱的前綴即可。例如。改變

b = numpy.distutils.core.Extension(name = 'b', sources = ['python/b.f']) 

b = numpy.distutils.core.Extension(name = 'foo.b', sources = ['python/b.f']) 
相關問題