【发布时间】:2018-10-22 01:20:08
【问题描述】:
在我的 Raspberry Pi 上出现以下错误,我一无所获:
我自己的 Python 脚本从名为 BlackBean.py 的另一个模块调用一个函数,该模块又导入名为“netaddr”和“configparser”的其他模块。问题是我似乎无法克服导入错误,它告诉我“没有名为 netaddr 的模块,或者如果我注释掉该导入,那么它也会在没有名为 configparser 的模块的情况下出错。所以我知道这是一个路径问题,但我只是似乎无法修复它!
Blackbean.Py 脚本的开头如下:
import broadlink
import ConfigParser
import sys, getopt
import time, binascii
import netaddr
import BlackBeanSettings
import re
from os import path
from Crypto.Cipher import AES
SettingsFile = ConfigParser.ConfigParser()
SettingsFile.optionxform = str
SettingsFile.read(BlackBeanSettings.BlackBeanControlSettings)
def execute_command(etc.........
BlackBean.py 文件位于我的项目 SkyHD 文件夹中,位于 /home/pi/SkyHD。 “netaddr”和“configparser”文件和文件夹由 pip 安装在 /home/pi/.local/lib/python2.7(and python3.5)/site-package 文件夹中。
sys.path 在其列表中包含上述文件夹,我还编辑了 .bashrc 并添加了 PYTHONPATH=${PYTHONPATH}:/home/pi/.local/lib/python2.7/site-package:/home/pi /.local/lib/python3.5/site-package:/home/pi/SkyHD:../ 但这些都不起作用。我想这一定是一些基本的东西,但我就是无法解决!帮忙!
另外,还有一些信息,当我第一次安装所有文件并运行我的程序时,一切正常,它发现文件正常,没有问题,只有当我重新启动时它才能找到文件。
【问题讨论】:
-
我了解您both Python 2.7 和 Python 3.5 站点包文件夹same PYTHONPATH 变量?如果是这样,那真的不是一个好主意。
-
好的,感谢您提供的信息,但这会导致我的问题吗?我不知道怎么做。
-
不能吗? Python 2.7 在路径中排在第一位,因此如果 Python 3 正在寻找特定模块,它将首先在 Python 2.7 目录中查找,因此它将获得 该模块的 Python 2 版本,这可能不会与 Python 3 兼容。这不仅仅是自找麻烦,而是乞求。
-
但是错误说它找不到任何版本的模块,所以你建议的是我同意的好习惯,但不会解决问题。
-
在你尝试之前你不能这么说。但适合自己。
标签: python module module-path