当我在sudo中使用Python时找不到模块

时间:2020-07-05 17:26:59

标签: python python-3.x linux

我正在使用需要sudo访问的键盘库,但是当我尝试使用sudo python运行程序时,找不到其他库

import pyautogui
import keyboard

if keyboard.is_preseed('w'):
....

因此,当我不使用sudo键盘使用时不起作用,而当我使用sudo python时则找不到其他库

2 个答案:

答案 0 :(得分:1)

'sudo'建立了一个新环境,因为它旨在安全,并且新用户将不会拥有与您相同的世界观。

您可以对'sudo'使用keep-environment参数来保留其中的一些,但这不能保证您的观点是相同的。可能是权限问题,或者是相对路径问题,或者是房屋差异,或者是其他用户中的用户外壳初始化设置。您可能可以在sudo的另一端构建一个良好的环境,例如使用“ sudo env PYTHONSOMETHING = $ PYTHONSOMETHING程序名”。

所以,这很复杂。首先,我将使用“ sudo -i”来获取一个交互式外壳,并测试它的外观,然后找到要更改的内容。

答案 1 :(得分:0)

默认情况下,Python为每个用户使用不同的软件包安装目录。 例如,您可以找到 keyboard 包的位置,如下所示:

>>> import keyboard
>>> keyboard.__file__
'/home/user/.local/lib/python3.8/site-packages/keyboard/__init__.py'

如您所见,它位于 / home / user 中,这意味着只有 user 可以使用它。 为了为root用户安装软件包,只需使用sudo运行 pip 即可:

sudo pip3 install keyboard