首页 > 解决方案 > 如果 sudo 或用户:root,则找不到 python 模块

问题描述

当我想在当前用户下将模块导入 Python 时,导入工作正常。但是当我想以root用户身份导入相同的模块时,突然找不到该模块。

这是证明:

root@raspberrypi:/home/pi/Programs# whoami
root
root@raspberrypi:/home/pi/Programs# python3
Python 3.7.3 (default, Apr  3 2019, 05:39:12) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import paho.mqtt.client as paho
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'paho'
>>> 
root@raspberrypi:/home/pi/Programs# su pi
pi@raspberrypi:~/Programs $ python3
Python 3.7.3 (default, Apr  3 2019, 05:39:12) 
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import paho.mqtt.client as paho
>>> 
pi@raspberrypi:~/Programs $ 

我已经尝试.bashrc通过添加到模块来修改 rootPYTHONPATH身份,但没有成功。我错过了什么?

这是作为普通用户的输出:

pi@raspberrypi:~/Programs $ whoami
pi
pi@raspberrypi:~/Programs $ python3 -c 'import sys; print(sys.path)'
['', '/home/pi/Programs', '/usr/local/lib/python3.7/dist-packages/Adafruit_PCA9685', '/usr/local/lib/python3.7/dist-packages/Adafruit_GPIO', '/home/pi/.local/lib/python3.7/site-packages/paho', '/home/pi/Programs/usr/local/lib/python3.7/site-packages/paho', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/home/pi/.local/lib/python3.7/site-packages', '/usr/local/lib/python3.7/dist-packages', '/usr/local/lib/python3.7/dist-packages/rpi_ws281x-1.0.0-py3.7-linux-armv7l.egg', '/usr/lib/python3/dist-packages']

这是作为根的输出:

pi@raspberrypi:~/Programs $ su
root@raspberrypi:/home/pi/Programs# python3 -c 'import sys; print(sys.path)'
['', '/home/pi/Programs', '/usr/local/lib/python3.7/dist-packages/Adafruit_PCA9685', '/usr/local/lib/python3.7/dist-packages/Adafruit_GPIO', '/home/pi/.local/lib/python3.7/site-packages/paho', '/home/pi/Programs/usr/local/lib/python3.7/site-packages/paho', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/dist-packages', '/usr/local/lib/python3.7/dist-packages/rpi_ws281x-1.0.0-py3.7-linux-armv7l.egg', '/usr/lib/python3/dist-packages']

似乎在两个版本中的路径paho是相同的!???

标签: pythonbash

解决方案


推荐阅读