Как условно установить модули с помощью pip с pyproject.toml?Python

Программы на Python
Ответить
Anonymous
 Как условно установить модули с помощью pip с pyproject.toml?

Сообщение Anonymous »

Я пытаюсь установить разные пользовательские версии в одном и том же каталоге, поэтому при использовании pip install . следует устанавливать только модуль базовой версии, а именно устанавливать только foo_tool. При использовании pip install .[extension] должен быть установлен дополнительный модуль foo_tool_extension.
Моя проблема:
При запуске pip install . Я хочу, чтобы был установлен только модуль foo_tool. При запуске pip install .[extension] я хочу, чтобы был установлен дополнительный модуль foo_tool_extension. Однако, в зависимости от моей конфигурации pyproject.toml:
  • Оба foo_tool и foo_tool_extension устанавливаются независимо от того, Я указываю опцию [расширение].
  • Устанавливается только файл dist-info, но ни один из модулей (

    Код: Выделить всё

    foo_tool
    или foo_tool_extension).

Код: Выделить всё

c:\users\thetelefone\anaconda3\envs\test_env\lib\site-packages\foo_tool-0.6.dist-info\*
c:\users\thetelefone\anaconda3\envs\test_env\lib\site-packages\foo_tool\*
c:\users\thetelefone\anaconda3\envs\test_env\lib\site-packages\foo_tool_extension\*
или только

Код: Выделить всё

c:\users\thetelefone\anaconda3\envs\test_env\lib\site-packages\foo_tool-0.6.dist-info\*
без обоих модулей.
Моя структура имеет следующий макет:

Код: Выделить всё

/foo_project
├── src
│   ├── foo_tool
│   │   ├── __init__.py
│   │   ├── foo_problem.py
│   │   ├── foo_plotting.py
│   ├── foo_tool_extension
│   │   ├── __init__.py
│   │   ├── foo_problem_extension.py
├── tests
│   ├── ...
├── README.md
├── pyproject.toml
Оба файла __init__.py пусты. В настоящее время мой pyproject.toml выглядит следующим образом. Я пробовал несколько разных вариантов, но всегда приводил к описанному выше поведению.

Код: Выделить всё

[project]
name = "foo_tool"
version = "0.6"
authors = [{name = "thetelefonecopmpany"}]
description = "Foo-Tool for fools."
requires-python = ">3.6"
dependencies = [
"matplotlib",
"pandas",
"numpy",
"openpyxl"
]

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[tool.setuptools.packages.find]
where = ["src"]
exclude = ["foo_tool_extension"]

[project.optional-dependencies]
extension = [
"scipy>=1.7.0",
"foo_tool_extension @ file://src/foo_tool_extension"
]

Как мне настроить файл pyproject.toml для достижения такого поведения?

Пожалуйста, помогите мне улучшить этот вопрос. Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... oject-toml
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»