【问题标题】:Why importing with ipython3 or sudo python3 is different? [duplicate]为什么使用 ipython3 或 sudo python3 导入不同? [复制]
【发布时间】:2020-06-20 12:14:32
【问题描述】:

我正在尝试使用 CircuitPython lib,但遇到了一些麻烦,我将 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】:

    我相信这个问题与此处找到的问题有关:

    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
    

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

    【讨论】:

    • 我想我明确地使用python3 来避免这种问题,我也想解决它:D
    • @azro,我看到您的版本在问题上可能与这些帖子不同。我会调查的。
    猜你喜欢
    • 2019-12-19
    • 2021-01-02
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    相关资源
    最近更新 更多