[Numpy-discussion] f2py and setup.py how can I specify where the .so file goes?

Scott Sinclair scott.sinclair.za at gmail.com
Fri Jul 12 05:02:16 EDT 2013


On 10 July 2013 17:50, Jose Gomez-Dans <jgomezdans at gmail.com> wrote:
> Hi,
> I am building a package that exposes some Fortran libraries through f2py.
> The packages directory looks like this:
> setup.py
> my_pack/
>   |
>   |---------->__init__.py
>   |----------> some.pyf
>   |-----------> code.f90
>
> I thoughat that once installed, I'd get the .so and __init__.py in the same
> directory (namely ~/.local/lib/python2.7/site-packages/my_pack/). However, I
> get
> ~/.local/lib/python2.7/site-packages/mypack_fortran.so
> ~/.local/lib/python2.7/site-packages/my_pack__fortran-1.0.2-py2.7.egg-info
> ~/.local/lib/python2.7/site-packages/my_pack/__init__.py
>
> Thet setup file is this at the end, I am clearly missing some option here to
> move the *.so into the my_pack directory.... Anybody know which one?
>
> Cheers
> Jose
>
> [setup.py]
>
> #!/usr/bin/env python
>
>
> def configuration(parent_package='',top_path=None):
>     from numpy.distutils.misc_util import Configuration
>     config = Configuration(parent_package,top_path)
>     config.add_extension('mypack_fortran', ['the_pack/code.f90'] )
>     return config
>
> if __name__ == "__main__":
>     from numpy.distutils.core import setup
>     # Global variables for this extension:
>     name         = "mypack_fortran"  # name of the generated python
> extension (.so)
>     description  = "blah"
>     author       = ""
>     author_email = ""
>
>     setup( name=name,\
>         description=description, \
>         author=author, \
>         author_email = author_email, \
>         configuration = configuration, version="1.0.2",\
>         packages=["my_pack"])

Something like the following should work...

from numpy.distutils.core import setup, Extension

my_ext = Extension(name = 'my_pack._fortran',
                              sources = ['my_pack/code.f90'])

if __name__ == "__main__":
    setup(name = 'my_pack',
             description = ...,
             author =...,
             author_email = ...,
             version = ...,
             packages = ['my_pack'],
             ext_modules = [my_ext],
          )

Cheers,
Scott



More information about the NumPy-Discussion mailing list