2015-09-02 2 views
1

Я знаю, что это спросили десятки раз, но я не вижу, что в мире я делаю неправильно. Я пытаюсь импортировать модуль в python 2.7 из другого каталога. Я был бы очень признателен за некоторые материалы, которые помогут мне понять, почему этот метод не работает. Я имею следующую структуру каталогов на моем raspbian системы:Python Import Module on Raspberry Pi

/home/pi/ 
     ...projects/__init__.py 
     ...projects/humid_temp.py 

     ...python_utilities/__init.py__ 
     ...python_utilities/tools.py 

Я звоню humid_temp.py и мне нужно импортировать функцию в tools.py Это то, что их содержание выглядит следующим образом:

humid_temp. ру:

import os 
import sys 
sys.path.append('home/pi/python_utilities') 
print sys.path 
from python_utilities.tools import * 

tools.py:

def tail(file): 
    #function contents 
    return stuff 

печать sys.path вывод содержит /home/pi/python_utilities

Я не вникаю в мой __init__.py Я? Я также исключил возможные проблемы разрешения с этим путем, как я дал ему полный доступ к 777, и я до сих пор хиту

ImportError: No module named python_utilities.tools.

Что я пропустил?

ответ

2

Если вы хотите импортировать что-то вроде -

from python_utilities.tools import * 

Вам нужно добавить родительский каталог python_utilities в sys.path, не python_utilities себя. Таким образом, вы должны добавить что-то вроде -

sys.path.append('/home/pi')  #Assuming the missing of `/` at start was not a copy/paste mistake 

Кроме того, только к сведению, from <module> import * плохо, вы должны рассматривать только импортировать необходимые детали, вы можете проверить вопрос - Why is "import *" bad? - для более подробной информации.

2

В humid_temp.py, просто написать:

from python_utilities import tools 

Там нет необходимости для добавления вложенного в sys.path.

Затем, когда вы хотите использовать функции из инструментов, просто

tools.function()