Bom dia,
Tenho um projeto utilizando uma classe propria, que é importada dentro da bot.py, mas ao executar o projeto por uma task no orquestrador ele apresenta o erro
ModuleNotFoundError: No module named ‘myclass’. Os demais imports não apresentam o erro.
Quando executo o projeto local, não apresenta esse erro. Existe algum modo de fazer os imports desse tipo de classe?
OBS: O motivo de não estar utilizando tudo dentro do bot.py, é devido querer utilizar o modulo bot.py apenas para fazer chamadas de outras classes (Banco de dados, validadores, mascaras)
Opa @Lichiery,
Tente fazer um import relativo dos módulos que você criou
Por exemplo, ao invés de usar assim:
from meuModulo import minhaClasse
Tente fazer algo assim, incluindo o ’ . ’
from .meuModulo import minhaClasse
ou se for o caso:
from . import meuModulo
Obrigado pela resposta, dentro do bot.py ele reconheceu o meu modulo. Mas o estranho é que dentro desse modulo existe um import pyodbc e me retornou o erro ModuleNotFoundError: No module named ‘pyodbc’.
Tentei executar um pip instal pyodbc, e tenho o retorno Requirement already satisfied : pyodbc in [path python], que acredito ser o retorno de que o módulo existe.
Agradeço desde já o apoio!
OBS: Não sei se é relevante, mas se eu remover essa classe e utilizar apenas o bot.py o rpa executa corretamente, inclusive realizando as interações de alerts e finalizações da tesk com sucesso;
@Lichiery nesse caso, toda dependência externa que é utilizada precisa ser incluída no arquivo requirements.txt
, essa é uma forma do Runner conseguir instalar todas as dependências necessárias pra execução do código, já que ele cria um ambiente virtual na hora de rodar a automação.
Dentro do arquivo de requirements é só incluir o nome do pacote, provavelmente já vai resolver o problema. Caso utilizar alguma outra dependência que precise ser instalada, basta seguir esse mesmo procedimento.
Deu certo, configurando o requirement.txt. obrigado pelo apoio!
1 Like