【发布时间】:2021-12-29 14:41:59
【问题描述】:
我有一个 python 文件 download.py 我正在其中导入一个模块 opc
现在,这个 python 文件从 shell 脚本 build.sh 调用,例如:
python3 $(pwd)/scripts/download.py -d $dir_name
当我运行 shell 脚本时,我收到以下错误:
Traceback (most recent call last):
File "/home/ray/Desktop/repo/image-builder/scripts/download.py", line 14, in <module>
from opc.utils import file_utils, logger
ModuleNotFoundError: No module named 'opc'
这是调用 shell 脚本的方式:
sudo sh scripts/src/build.sh
我有一个活动的虚拟环境,我安装了这个包。这个包也有
>pip list
Package Version
--------------------------------- -------
attrs 21.2.0
.
.
opc 0.8.0
有趣的是,当我直接运行 python 代码时
python3 scripts/download.py -d dir_path
它工作正常。我没有收到ModuleNotFoundError 错误。
另外,这也很好用:
❯ python3
Python 3.8.10 (default, Sep 28 2021, 16:10:42)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import opc.utils.global_vars as g
>>> print(g.LOCAL_HOST)
127.0.0.1
>>>
目录结构:
/home/ray/Desktop/repo/image-builder/scripts/download.py
/home/ray/Desktop/repo/image-builder/scripts/src/build.sh
我正在运行以下命令:
/home/ray/Desktop/repo/image-builder
【问题讨论】:
-
我正在尝试重现它。这个 OPC 包是来自 pip 的
opc?或者它是一个不同的?我问是因为版本不适合我。 -
不是来自 pip
标签: python shell python-venv