python-3.x - 为什么使用 ipython3 或 sudo python3 导入不同?
问题描述
我正在尝试使用 CircuitPython lib,但遇到了一些麻烦,我将Circuitpython 包中的文件放入/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
我被卡住了
解决方案
我相信这个问题与这里发现的问题有关:
本质上,它是在 sudo 下运行不同版本的 python。这可能意味着它无法正确运行库。
编辑:
这也可能与无法使用 sudo 运行 Python 脚本有关。(尝试使用 -E 标志运行。)
默认情况下 sudo 在不同的环境中运行命令。您可以要求 sudo 使用
-E
switch 保护环境。sudo -E python myScriptName.py
它带有自己的安全风险。所以要小心
推荐阅读
- android - 检查麦克风是否被其他应用程序使用?
- arrays - Powershell 将两个数组的元素组合在一起
- c - Scanf解析字符串
- c++ - 为什么 sizeof(!0) 打印 1 而不是 4?
- ruby-on-rails - Rails 5:活动存储链接添加 ?local=en
- checkbox - 更新复选框并从颤动中的对话框返回值
- node.js - 需要同时使用 Axios 发布来自 React 的数据和文件
- vue.js - Nativescript-Vue中如何根据内容长度设置WebView的高度?
- android - 特定日期和时间的 Android 通知提醒
- postgresql - PL/pgSQL:如何使用 IF NEW。
<> 旧的。