2015-09-02 329 views
1

我知道這已被問了幾十次,但我看不到我在做什麼錯誤的世界。我想從一個不同的目錄中導入Python 2.7中的模塊。我非常感謝一些意見,幫助我理解爲什麼這種方法不起作用。我有我的raspbian系統上的以下目錄結構:樹莓派上的Python導入模塊

/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()