即使正确安装,Python3仍找不到模块

时间:2018-12-27 04:43:33

标签: python python-3.x bluetooth pip pybluez

我正在使用Python 3.6.7 venv,并且除安装了PyBluez之类的所有依赖项之外,还安装了sudo apt install bluetooth libbluetooth-dev python3-bluez蓝牙库。当我运行python脚本时,我得到:

`ModuleNotFoundError:没有名为“蓝牙”的模块

疯狂的是,我刚刚检查了环境的/lib/python3.6/site-packages/目录,并且有名为蓝牙和PyBluez-0.22,egg-的 确实 目录。信息。

即使如此,当我进入bluetooth目录时,仍然有 ble.py文件,一个_bluetooth.cpython.so文件(缩写名称), bluez.py,它们中均包含有效代码。所有依赖项都是通过pip3 install从虚拟环境中安装的,甚至已通过python3 -m pip install进行了验证,python3声称已将其安装到该依赖项中。另外,ls -la显示drwxrwxr-x就像site-packages文件夹中的所有其他依赖项一样。这是什么问题?

注意:我还通过虚拟机验证了pip3 list的安装。

注意2:Visual Studio Code似乎无法找到模块...它们用红色下划线标出,并且pylint扩展名为unable to import [modulename]。这仅适用于安装在venv中的模块。可能是pylint扩展搜索系统库而不是我的通风口的库时出现错误。这没什么大不了的。

1 个答案:

答案 0 :(得分:0)

在将python3-bluez作为apt软件包安装时,它已安装在系统的全局站点软件包中。默认情况下,virtualenv不会从全局站点程序包中继承程序包,因此在virtualenv环境中,您实际上无法从全局站点程序包中导入任何模块。但是,可以在创建带有--system-site-packages标志的virtualenv环境时或从no-global-site-packages.txt目录中删除lib/pythonX.X/创建虚拟环境时,使其从全局站点包继承。有关更多信息,请遵循官方documentation