Python 在 Raspberry Pi 上导入模块

Python Import Module on Raspberry Pi

我知道这个问题已经被问过几十次了,但我看不出我做错了什么。我正在尝试从另一个目录导入 python 2.7 中的模块。我将不胜感激一些意见,以帮助我理解为什么这种方法不起作用。我的 raspbian 系统上有以下目录结构:

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

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

我正在调用 humid_temp.py,我需要在 tools.py 中导入一个函数 这就是它们的内容:

humid_temp.py:

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.

我错过了什么?

当您想导入类似 -

的内容时
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? - 了解更多详情。

在humid_temp.py中只写:

from python_utilities import tools

不需要将子文件夹附加到 sys.path。

然后当你想使用工具中的功能时,只需

tools.function()