У меня есть файл conda с некоторыми стандартными зависимостями, и я хочу установить клиентский пакет с помощью pip -e. Мой environment.yml выглядит так:

name: my_env
channels:
  - conda-forge
  - defaults

dependencies:
  - python==3.7.0 
  - pip==19.3.1
  - pip:
    - -e ./path_to_my_package

Когда я пытаюсь создать среду, запустив conda env create -f conda.yml, создание среды завершается ошибкой: ModuleNotFoundError: No module named 'setuptools'. Это удивительно, у меня в пакете conda и в моем Ubuntu установлены инструменты настройки.

Команда conda пытается запустить и выдает ошибку:

/home/path/to/my/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/path/to/my/package/setup.py'"'"'; __file__='"'"'/pat/to/my/package/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' develop --no-deps

Когда я запускаю эту команду вне команды conda create, она работает хорошо.

Мой setup.py выглядит просто, это просто:

import setuptools

if __name__ == "__main__":
    setuptools.setup()

Я ошеломлен. Кто-нибудь может помочь?

ИЗМЕНИТЬ

Я использую подсистему Windows для Linux (версия 1)

4
Cactus 22 Фев 2021 в 00:38

1 ответ

Лучший ответ

Есть ли в вашем пакете соответствующий раздел, например, в таком файле pyproject.toml

[metadata]
name = "mypackage"
version = "0.0.1"

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

См. Также setuptools (обратите внимание на кавычки в [metadata] )

2
red-isso 22 Фев 2021 в 11:14