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()
我知道这个问题已经被问过几十次了,但我看不出我做错了什么。我正在尝试从另一个目录导入 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()