我正在使用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扩展搜索系统库而不是我的通风口的库时出现错误。这没什么大不了的。
答案 0 :(得分:0)
在将python3-bluez
作为apt软件包安装时,它已安装在系统的全局站点软件包中。默认情况下,virtualenv不会从全局站点程序包中继承程序包,因此在virtualenv环境中,您实际上无法从全局站点程序包中导入任何模块。但是,可以在创建带有--system-site-packages
标志的virtualenv环境时或从no-global-site-packages.txt
目录中删除lib/pythonX.X/
创建虚拟环境时,使其从全局站点包继承。有关更多信息,请遵循官方documentation。