关于用远程云端环境在本地编译器跑代码时出现 ModuleNotFoundError: No module named ‘***‘ 的问题(云端环境明明有这个包却还报错)

目录

注意

问题描述:

问题原因 

解决办法


注意

这个问题是有前提条件的,如题目中注明,云端环境明明有这个包却还报错。如果没有这个前提条件。只是简单的报错,直接 pip install *** 就行。

问题描述:

我想执行一下模型的训练过程,其启动程序定义在脚本文件 train.py 中。在远程服务器已经配置好了环境,而且在远程服务器的终端执行 train.py 时

python tracking/train.py --script artrack --config artrack_256_full --save_dir ./output --mode single 

没有什么问题。我想在本地的编译器中debug一下,将上面传入的参数在pycharm中,对train.py中进行了配置

运行后就出现了题目中的错误。

ModuleNotFoundError: No module named '***'

 此时在 终端的环境中 pip list 一下,发现没什么问题,存在这个包,而且在终端运行一切正常,并没有报错,哎,什么情况?

问题原因 

在train.py 脚本文件中,发现 

    if args.mode == "single":
        train_cmd = "python /root/data/zjx/Code-subject/ARTrack/ARTrack-main/lib/train/run_training.py --script %s --config %s --save_dir %s --use_lmdb %d " \
                    "--script_prv %s --config_prv %s --distill %d --script_teacher %s --config_teacher %s --use_wandb %d"\
                    % (args.script, args.config, args.save_dir, args.use_lmdb, args.script_prv, args.config_prv,
                       args.distill, args.script_teacher, args.config_teacher, args.use_wandb)


# 
os.system(train_cmd)

这里利用 os.system 来执行 run_train.py 脚本命令,这就出现了问题。在远程服务器终端执行 train.py 时,os.system 所在的服务器环境是云端的环境,而在本地编译器执行 train.py时, os.system会在本地的环境下创建子进程。所以由于 train.py 脚本中使用了 os.system 这一函数,导致这之后的 代码是在 本地的环境 下执行的。这就造成了矛盾,使得远程和本低发生冲突,除了题目中的问题外,还会发生其它问题,远程的一些模块会被冻结或者禁止访问。

在远程服务器终端查看一下环境中的包

# pip listPackage                  Version
------------------------ --------------------
astor                    0.8.1
certifi                  2023.11.17
cffi                     1.16.0
charset-normalizer       3.3.2
click                    8.1.7
configparser             5.2.0
contourpy                1.2.0
cycler                   0.12.1
Cython                   3.0.7
data                     0.4
decorator                5.1.1
docker-pycreds           0.4.0
easydict                 1.9
einops                   0.4.1
filelock                 3.13.1
fonttools                4.47.0
formulaic                0.5.2
fsspec                   2023.12.2
funcsigs                 1.0.2
future                   0.18.2
gitdb                    4.0.9
GitPython                3.1.27
h5py                     3.10.0
idna                     3.6
importlib-resources      6.1.1
interface-meta           1.3.0
iopath                   0.1.9
Jinja2                   3.1.2
jpeg4py                  0.1.4
jsonpatch                1.32
jsonpointer              2.3
kiwisolver               1.4.5
latex                    0.7.0
libarchive-c             2.9
linearmodels             4.29
lmdb                     1.3.0
loguru                   0.6.0
MarkupSafe               2.1.3
mat73                    0.59
matplotlib               3.8.2
memory-profiler          0.60.0
mpmath                   1.3.0
msgpack                  1.0.2
mypy-extensions          1.0.0
networkx                 3.2.1
ninja                    1.11.1
numexpr                  2.8.8
numpy                    1.26.3
nvidia-cublas-cu12       12.1.3.1
nvidia-cuda-cupti-cu12   12.1.105
nvidia-cuda-nvrtc-cu12   12.1.105
nvidia-cuda-runtime-cu12 12.1.105
nvidia-cudnn-cu12        8.9.2.26
nvidia-cufft-cu12        11.0.2.54
nvidia-curand-cu12       10.3.2.106
nvidia-cusolver-cu12     11.4.5.107
nvidia-cusparse-cu12     12.1.0.106
nvidia-nccl-cu12         2.18.1
nvidia-nvjitlink-cu12    12.3.101
nvidia-nvtx-cu12         12.1.105
opencv-python            4.5.5.64
opencv-python-headless   4.9.0.80
packaging                23.2
pandas                   2.1.4
pathtools                0.1.2
patsy                    0.5.5
pillow                   10.2.0
pip                      23.3.1
portalocker              2.8.2
promise                  2.3
property-cached          1.6.4
protobuf                 3.20.1
psutil                   5.9.7
pycocotools              2.0.7
pycparser                2.21
pyhdfe                   0.2.0
pyparsing                3.1.1
python-dateutil          2.8.2
pytz                     2023.3.post1
PyYAML                   6.0.1
pyzmq                    25.1.2
requests                 2.31.0
scipy                    1.11.4
sentry-sdk               1.5.8
setproctitle             1.2.2
setuptools               68.2.2
setuptools-scm           7.1.0
Shapely                  1.8.1.post1
shortuuid                1.0.8
shutilwhich              1.1.0
six                      1.16.0
smmap                    5.0.0
statsmodels              0.14.1
sympy                    1.12
tables                   3.6.1
tempdir                  0.7.1
tensorboardX             2.5.1
termcolor                1.1.0
thop                     0.1.0.post2207010342
tikzplotlib              0.10.1
timm                     0.5.4
tomli                    2.0.1
torch                    1.11.0
torchfile                0.1.0
torchvision              0.12.0
tornado                  6.4
tqdm                     4.66.1
triton                   2.1.0
typing_extensions        4.9.0
tzdata                   2023.4
urllib3                  2.1.0
visdom                   0.1.8.9
wandb                    0.12.11
webcolors                1.12
websocket-client         1.7.0
wheel                    0.41.2
wrapt                    1.16.0
yaspin                   2.1.0
zipp                     3.17.0

再对比一下执行 os.system时环境中的包

(在脚本文件train.py中添加)

os.system('pip list')

执行脚本文件,看到

Package                Version
---------------------- ---------------------
absl-py                0.11.0
aiocontextvars         0.2.2
anyio                  3.5.0
argon2-cffi            21.3.0
argon2-cffi-bindings   21.2.0
asn1crypto             0.22.0
astor                  0.8.1
attrs                  21.4.0
Babel                  2.9.1
backcall               0.1.0
bleach                 3.0.2
botocore               1.11.6
cached-property        1.5.2
cachetools             4.1.1
camera                 1.3.0
certifi                2017.7.27.1
cffi                   1.14.0
chardet                3.0.4
cloudpickle            0.6.1
colorama               0.3.9
contextvars            2.4
cryptography           2.0.3
cycler                 0.10.0
Cython                 0.29.28
dask                   0.20.2
dataclasses            0.8
decorator              4.3.0
docutils               0.14
easydict               1.9
entrypoints            0.2.3
gast                   0.5.3
google-auth            1.23.0
google-auth-oauthlib   0.4.2
google-pasta           0.2.0
grpcio                 1.33.2
h5py                   3.1.0
idna                   2.10
immutables             0.14
importlib-metadata     3.1.0
ipykernel              5.1.0
ipython                7.1.1
ipython-genutils       0.2.0
ipywidgets             7.4.2
jedi                   0.13.1
Jinja2                 2.10
jmespath               0.9.4
joblib                 0.17.0
json5                  0.9.6
JsonForm               0.0.2
jsonschema             3.2.0
JsonSir                0.0.2
jupyter                1.0.0
jupyter-client         7.1.2
jupyter-console        6.0.0
jupyter-core           4.9.2
jupyter-server         1.13.1
jupyterlab             3.2.9
jupyterlab-server      2.10.3
Keras-Applications     1.0.8
Keras-Preprocessing    1.1.2
keyring                10.6.0
keyrings.alt           3.0
kiwisolver             1.0.1
loguru                 0.6.0
Markdown               3.3.3
MarkupSafe             1.1.1
matplotlib             3.0.0
mistune                0.8.3
msgpack                1.0.0
msgpack-numpy          0.4.7.1
multimethod            1.5
nbclassic              0.3.5
nbconvert              5.3.1
nbformat               4.4.0
nest-asyncio           1.5.4
networkx               2.2
notebook               5.7.2
numpy                  1.19.4
oauthlib               3.1.0
opencv-python          4.5.5.62
packaging              21.3
pandas                 1.1.5
pandocfilters          1.4.2
parso                  0.3.1
pexpect                4.6.0
pickleshare            0.7.5
Pillow                 8.0.1
pip                    21.3.1
portalocker            2.2.1
prometheus-client      0.4.2
prompt-toolkit         2.0.7
protobuf               3.14.0
psutil                 5.7.3
ptyprocess             0.6.0
pyasn1                 0.4.8
pyasn1-modules         0.2.8
pycocotools            2.0.4
pycparser              2.21
pycrypto               2.6.1
Pygments               2.2.0
PyGObject              3.26.1
pyOpenSSL              17.2.0
pyparsing              2.2.2
pyrsistent             0.18.0
PySocks                1.6.7
python-apt             1.6.5+ubuntu0.7
python-dateutil        2.8.0
Python-EasyConfig      0.1.7
python-gflags          3.1.2
pytz                   2021.3
PyWavelets             1.0.1
pyxdg                  0.25
PyYAML                 3.13
pyzmq                  17.1.2
qtconsole              4.4.2
requests               2.25.0
requests-oauthlib      1.3.0
Resource               0.2.1
rsa                    3.4.2
ruamel.yaml            0.11.14
s3transfer             0.1.13
scikit-image           0.14.1
scikit-learn           0.23.2
scipy                  1.5.4
SecretStorage          2.3.1
Send2Trash             1.5.0
setuptools             59.6.0
six                    1.11.0
sklearn                0.0
sniffio                1.2.0
ssh-import-id          5.7
tabulate               0.8.7
tensorboard            2.4.0
tensorboard-plugin-wit 1.7.0
tensorboardX           2.1
tensorflow-estimator   1.14.0
tensorflow-gpu         1.14.0
tensorpack             0.10.1
termcolor              1.1.0
terminado              0.12.1
testpath               0.4.2
thop                   0.0.31.post2005241907
threadpoolctl          2.1.0
toml                   0.10.2
toolz                  0.9.0
torch                  1.8.1+cu102
torchpack              0.2.2
torchvision            0.9.1
tornado                6.1
tqdm                   4.53.0
traitlets              4.3.2
typing-extensions      3.7.4.3
unattended-upgrades    0.1
urllib3                1.22
wcwidth                0.1.7
webencodings           0.5.1
websocket-client       1.3.1
Werkzeug               1.0.1
wheel                  0.30.0
widgetsnbextension     3.4.2
wrapt                  1.13.3
yacs                   0.1.8
zipp                   3.4.0

这完全不是云端的环境。最后,经过查看 ,发现是本地的 一个 环境。就是 os.system 这个函数引发的问题。

解决办法

跳过使用了 os.system 函数的主脚本文件,在 os.system 执行的脚本命令的文件中去配置参数,从而在该文件中运行即可。

举例:刚才的 os.system 执行的脚本命令 如下

train_cmd = "python /root/data/zjx/Code-subject/ARTrack/ARTrack-main/lib/train/run_training.py --script %s --config %s --save_dir %s --use_lmdb %d " \
                    "--script_prv %s --config_prv %s --distill %d --script_teacher %s --config_teacher %s --use_wandb %d"\
                    % (args.script, args.config, args.save_dir, args.use_lmdb, args.script_prv, args.config_prv,
                       args.distill, args.script_teacher, args.config_teacher, args.use_wandb)

那么,就在 

/root/data/zjx/Code-subject/ARTrack/ARTrack-main/lib/train/run_training.py

文件中去配置传入的参数

这样,就可以在本地 debug 训练过程了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

匿名的魔术师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值