pyinvoke обнаружение модуля задачи не работает - PullRequest
0 голосов
/ 20 апреля 2020

Я нахожусь в папке foo, которая содержит python пакетных задач

.
|-- tasks
    |-- __init__.py
    |-- tasks.py

Файл tasks.py содержит

from invoke import task

@task
def foo(c):
    print("Hi")

Однако, если я вызываю inv foo I получить сообщение No idea what 'foo' is!

Я только что выполнил документацию :

Без другой конфигурации, простой вызов invoke будет искать один Python модуль или пакет с именованными задачами и будет обрабатывать его как пространство имен root. Задачи (или любое другое имя, указанное в параметрах загрузки конфигурации) ищутся следующими способами:

  • Во-первых, если в Python sys.path уже существует действующий модуль задач с таким именем, больше не нужно искать готово - этот модуль выбран.
  • Если это не удалось, выполните поиск в направлении root локальной файловой системы, начиная с текущего рабочего каталога пользователя (os.getcwd), и попробуйте выполнить импорт снова, когда каждый каталог временно добавлен в sys.path.

Первый случай может быть исключен. Действительный модуль задач, по-видимому, не существует в sys.path, потому что, если я заменю пакетные задачи на файл tasks.py (= module), команда inv foo выводит Hi на консоль.

...