python - 无法在终端中执行 ModuleNotFoundError。但是在pycharm ide中工作
问题描述
我正在学习python
我的项目结构如下所示。
i3cmd
i3lib
__init__.py
i3common.py
i3sound
i3sound.py
==================================================== =============
初始化.py 为空
i3common.py(删除了实际代码以简化帖子)
def rangeofdata(cmd, device, index):
return ["a", "b", "c"]
i3sound.py(删除了实际代码以简化帖子)
from i3lib import i3common
def getvolume(rangedata):
return rangedata
if __name__ == '__main__':
rangedata = i3common.rangeofdata(["pactl", "list", "sinks"], "Sink", 2)
print(getvolume(rangedata))
在 pycharm 中执行此代码时,它会执行并获取输出
/home/vipin/Documents/python/i3cmd/venv/bin/python /home/vipin/Documents/python/i3cmd/i3sound/i3sound.py
['a', 'b', 'c']
Process finished with exit code 0
但是当打开终端并转到 /home/vipin/Documents/python/i3cmd/i3sound
cd /home/vipin/Documents/python/i3cmd/i3sound
然后执行
python i3sound.py
我得到以下错误
Traceback (most recent call last):
File "i3sound.py", line 1, in <module>
from i3lib import i3common
ModuleNotFoundError: No module named 'i3lib'
我错过了什么?
解决方案
您可能已经在 Pycharm 中运行项目的环境中安装了包“i3lib”。
您可以使用以下方法创建虚拟环境:
virtualenv .venv
激活虚拟环境:
source .venv/bin/activate
并通过以下方式安装 i3lib:
pip install i3lib
然后进入python shell。
推荐阅读
- c - c中的小链表程序,随机printf输出
- laravel - 雄辩的枢轴咨询是如何编写的?
- r - 将表达式与绘图标签的指示变量结合使用
- sql-server - sqlcmd“无缓冲”输出
- auto-indent - 在 Vim 中,我可以自动软包装注释并在第一个字符处对齐
- python-3.7 - 将python计算值发送到电报
- c - 为什么 SonarQube 会提出 MISRA-C 批评意见 <
> 关于 ARM Cortex-M3 的“启动”代码? - cassandra - Flink-Cassandra 连接器抛出异常(flink-connector-cassandra_2.11-1.10.0)
- sql - DROP TABLE IF EXISTS - 无法删除或更新父行:外键约束失败
- python - 如何让keras模型在多线程算法中预测函数?