在使用numpy.distutils.core.setup之前安装numpy

2024-10-02 20:41:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用numpy.distutils设置一个包含frotran模块的包(mypackage)。问题是,如果在没有numpy的环境中执行pip install mypackage,则会出现以下错误:

ModuleNotFoundError: No module named 'numpy'

最简单的解决方案是在用户安装我的软件包之前,让他们(如果我有任何用户的话)去pip install numpy,但我认为这不是一个非常优雅的解决方案

在导入numpy之前,我想到了只使用setuptools.setup调用setup_requires=['numpy']的想法,而且似乎效果很好。这是我的setup.py

import setuptools

setuptools.setup(
    setup_requires=[
        'numpy'
    ],)

from numpy.distutils.core import setup, Extension

mod = Extension(name='mypackage.amodule', sources=['source/a.f90'])

setup(name='mypackage',
      packages=['mypackage'],
      ext_modules=[mod],)

老实说,我不完全理解调用空的setup()(没有名字,没有包)意味着什么这是一个好的解决方案吗?这是一种不好的做法吗?


Tags: installpip用户nameimportnumpymodsetup
1条回答
网友
1楼 · 发布于 2024-10-02 20:41:53

这是一个共同的问题。如何安装构建时依赖项?您可能希望使用pyproject.toml文件并利用build-system功能。见PEP517。这里有一个例子:

[build-system]
build-backend = "setuptools.build_meta"
requires = ["setuptools", "numpy"]

使用^{} tool构建分布(sdistwheel

相关问题 更多 >