Python:没有名为xxx的模块

文斯·威廉姆斯

我在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中。pip将“ netaddr”和“ configparser”文件和文件夹安装在/home/pi/.local/lib/python2.7(和python3.5)/ site-package文件夹中。

sys.path在其列表中包含上述文件夹,Ive还编辑了.bashrc并添加了PYTHONPATH = $ {PYTHONPATH}:/ home / pi / .local / lib / python2.7 / site-package:/home/pi/.local /lib/python3.5/site-package:/home/pi/SkyHD:../,但这都不起作用。我想这一定是基本的东西,但我无法解决!救命!

另外,更多信息,当我第一次安装所有文件并运行我的程序时,一切正常,并且可以正常地找到文件,仅当我重新启动时才找不到文件。

文斯·威廉姆斯

它是固定的。Python在3个位置查找导入的模块,第一个是您从中启动python脚本的文件夹;因此,对我来说,显而易见的答案是将我需要的模块直接导入我自己的Project文件夹(/ home / pi / myproject)。这工作得很好,即使重启后也能每次工作,这是我以前的主要问题。无需创建或更改PYTHONPATH,无需弄乱.bashrc中的条目,也无需尝试更改python路径条目。步骤如下:使用以下命令将PIP升级到9.0.3版(不是Ver 10)

pip install --upgrade pip==9.0.3

然后使用以下命令安装所需的模块

pip install --target=/home/pi/your_project_folder module_name

所以对我来说是... pip install --target = / home / pi / SkyHD netaddr

我肯定这不是最佳实践,但是我的Raspberry Pi仅具有一个要运行的项目,并且将模块导入到Projects文件夹中并不是问题。希望这对其他有相同问题的人有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章