Я нахожусь в папке 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
на консоль.