Я использую numpy.distutils
для установки пакета (mypackage) с модулем frotran. Проблема в том, что если я выполняю pip install mypackage
в среде, в которой нет numpy, я получаю следующую ошибку:
ModuleNotFoundError: Нет модуля с именем 'numpy'
Простое решение - попросить пользователей (если они у меня появятся) pip install numpy
перед установкой моего пакета, но я не думаю, что это очень элегантное решение.
Мне пришла в голову идея вызвать setuptools.setup
только с setup_requires=['numpy']
, прежде чем я импортирую 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()
(без имени, без пакета). Это хорошее решение? Это как-то плохая практика?