Я пытаюсь написать специальный пакет для python. Он имеет следующую структуру папок:
E:\GITHUB\FUNCTIONSYNTHESIZER
│ .gitignore
│ LICENSE
│ README.md
│ setup.py
│
├───docs
│ docs.md
│ Example-6-Points.png
│
└────src
│ function_synth.py
│ __init__.py
│
└───__pycache__
Pip разрешает установку через путь к папке в файле setup.py. Файл setup.py следует указаниям Python .org , наиболее важный из которых работает в другом пакете с другим именем:
from distutils.core import setup
def README():
return open("README.md").read()
setup(name='function_synthesizer',
version = '0.0.2',
description = 'Generates a polynomial interpolation from a set up points',
author = 'David J. Kowalk',
author_email = '...',
url = 'https://github.com/davidkowalk/FunctionSynthesizer',
license = "MIT",
keywords = "math interpolation polynomial calculus",
long_description = README(),
long_description_content_type='text/markdown',
classifiers=[
Calssifiers here
],
package_dir = {'':'src'},
python_requires = ">=3.6",
install_requires=['numpy'],
project_urls={
'Bug Reports': '...',
'Funding': '...',
'Source': '...',
}
)
__init__.py
импортирует различные функции function_synth .
from function_synth import solve
from function_synth import to_str
from function_synth import calculate
Пакет устанавливается pip под именем "function_synthesizer", как это определено в setup.py, но когда я запускаю pip show function_synthesizer
, я получаю
Name: function-synthesizer
Version: ...
Это имя нарушает синтаксис имени пакета и, самое главное, нигде не определен. Я не могу найти причину для этого da sh, и он почему-то заменяет подчеркивание, определенное аргументом name
. Но даже когда я удаляю подчеркивание и полученный da sh python не может импортировать пакеты под следующими именами:
- function_synthesizer
- function-synthesizer (синтаксическая ошибка в da sh)
- функциональный синтезатор (после удаления da sh)
- function_synth (имя файла)
Есть ли в любом случае выборка пространства имен из пипа и как я могу определить это пространство имен в setup.py?