为什么用ipython3或sudo python3导入不同? [重复]

问题描述 投票:0回答:1

[我正在尝试使用CircuitPython库,但是遇到了一些麻烦,我将Circuitpython bundle中的文件放在了/lib

  • 此作品

    $ ipython3
    Python 3.7.3, blabla info
    >> import sys
    >> sys.path.append("/lib/adafruit_hid")
    >> import adafruit_hid
    
  • 这也可行

    $ python3
    Python 3.7.3, same blabla info
    >> import sys
    >> sys.path.append("/lib/adafruit_hid")
    >> import adafruit_hid
    
  • 这不是

    $ sudo python3
    Python 3.7.3, same blabla info
    >> import sys
    >> sys.path.append("/lib/adafruit_hid")
    >> import adafruit_hid
    ModuleNotFoundError: No module named 'adafruit_hid'
    

并且由于脚本需要以root的身份运行,所以我被卡住了

python-3.x python-import sudo
1个回答
1
投票

我相信这个问题与在这里找到的问题有关:

https://superuser.com/questions/600349/why-sudo-python-and-python-in-terminal-start-two-different-versions-python/600350

本质上,它在sudo下运行不同版本的python。这可能意味着它无法正确运行该库。

编辑:这也可能与Cannot run Python script using sudo有关。(尝试使用-E标志运行。)

默认情况下,sudo在不同的环境中运行命令。你可以问sudo以使用-E开关保存环境。

sudo -E python myScriptName.py

它具有自身的安全风险。所以要小心

© www.soinside.com 2019 - 2024. All rights reserved.