Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Acesso a módulos em diretórios distintos.

Caros, boa tarde!

Instalei o módulo de acesso à API do Trove (troveclient) pelo PIP e, ao tentar importar o módulo, estou recebendo o erro abaixo:

Traceback (most recent call last): File "connect.py", line 10, in from troveclient.v1 import client ImportError: No module named v1

Segue o código do programa:

from troveclient.v1 import client

user = os.environ['OS_USERNAME'] pswd = os.environ['OS_PASSWORD'] tent = os.environ['OS_TENANT_NAME'] aurl = os.environ['OS_AUTH_URL']

connect = client.Client(user, pswd, tent, aurl)

connect.instance.list()

Alguma dica de como importo módulos em diretórios distintos da minha aplicação?

Desde já, agradeço a colaboração!

3 respostas

Olá Adriano,

ao instalar um módulo com o pip, o import dele deveria funcionar do jeito que você está fazendo, sem precisar especificar caminho.

É possível que algo aconteceu com a instalação, ou você usou o pip3 (para Python3) e está tentando importar no python2. Por fim, tente reiniciar a máquina.

Abraços, Victor.

Bom dia!

Bem, vamos lá!

Resolvi a minha questão da seguinte maneira:

  • ao invés de declarar o PATH por meio do SYS (segue código mais abaixo), o fiz por meio de inserção na variável PYTHONPATH (também mais abaixo).

O problema que ainda "enfrento" é: para qualquer coisa que esteja num diretório que não é o corrente do meu .py que executa, tenho de inserir o caminho ou por meio da SYS ou por meio da PYTHONPATH. Sinceramente, não me recordo de ter essa necessidade em outros tempos.

Declaração do PATH por meio da SYS:

import sys
sys.path.insert(0, "/usr/lib/python2.7/dist-packages/")

Declaração de PATH por meio da PYTHONPATH:

export PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages/"

Outra (versão do PIP):

$ pip --version
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

Desde já, agradeço a colaboração!

solução!

Bem, a quem interessar, simplesmente, esqueci de criar o __init__.py no diretório do módulo que precisava fazer o import. Meu arquivo __init__.py ficou com, apenas, o código abaixo:

# __init__.py
# -*- coding: UTF-8 -*-
# Sem mais conteúdo :-)

Só mesmo para eu conseguir importar o que quero.

Valeu a atenção!

Fonte: http://stackoverflow.com/questions/456481/cant-get-python-to-import-from-a-different-folder