【问题标题】:Numpy setuptools: How to compile fortran file as part of a moduleNumpy setuptools:如何将 fortran 文件编译为模块的一部分
【发布时间】:2016-01-09 03:02:56
【问题描述】:

我有一个表单的目录结构

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 包而不是作为单独的包安装?

【问题讨论】:

    标签: python numpy fortran setuptools f2py


    【解决方案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'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      相关资源
      最近更新 更多