首页 > 解决方案 > Python 站点包在执行时不被识别,但在 Python 控制台中被识别

问题描述

我正在尝试在 Ubuntu 20.04.01 LTS 虚拟机上从 PyCharm 终端运行 sh 文件。我有一个使用 MiniConda 为 Python 3.6 创建的虚拟环境,在设置中我可以验证是否安装了我想要的包(包括 numpy、scipy、torch 等)。写作时pip install numpy,我可以验证要求已经满足/home/username/miniconda3/envs/DenseFusion/lib/python3.6/site-packages。编写python --version时返回正确的版本,3.6。移动到 Python 控制台并运行import numpy时,没有错误(也没有任何其他包)。

在 cd'ing 到正确的文件夹(在 PyCharm 终端中)之后,我运行sudo ./experiments/scripts/eval_linemod.sh(我想要的 sh 文件的位置)。这成功启动,执行以下一小段代码:

`#!/bin/bash

设置 -x 设置 -e

导出 PYTHONUNBUFFERED="True" 导出 CUDA_VISIBLE_DEVICES=0

python3 ./tools/eval_linemod.py --dataset_root
./datasets/linemod/Linemod_preprocessed --modeltrained_checkpoints/linemod/pose_model_9_0.01310166542980859.pth
--refine_modeltrained_checkpoints/linemod/pose_refine_model_493_0.006761023565178073.pth`

它执行的 python 脚本 eval_linemod.py 在脚本开头开始导入其包时返回以下错误。

ModuleNotFoundError: No module named numpy

尝试的任何包都会发生此错误。我对为什么脚本无法识别 venv 站点包感到困惑,即使所有其他步骤都验证了 venv 是可访问的。在此之前我从未使用过 Linux,并且正在尝试遵循 DenseFusion github 页面说明。如果我遗漏了 Linux 的一个非常简单的特性,请告诉我。任何帮助表示赞赏。

标签: ubuntuvirtual-machinepython-3.6

解决方案


推荐阅读