在编译好的pyc文件打包好的docker项目中运行py文件,但是出现了No module named xxx error。
Docker 结构如下:
其中,源代码文件夹为 ppo_eval,代码文件的结构为:
出问题的 RL 文件夹结构为:
dockerfile 内容为:
FROM python:3.9.13
ADD . /ppo_eval
WORKDIR /ppo_eval
RUN pip install -r requirements.txt
CMD ["python", "./ppo_eval/evaluate/evaluate_async.py"]
调用的python脚本代码为:
import os
import sys
import numpy as np
import pandas as pd
import torch
import time
sys.path.append("../")
sys.path.append("/home/b121-legion/Projects/ppo_docker/ppo_eval")
print(sys.path)
from RL.actor_network import FcActorBetaRBF
from RL.ppo import PPOAgent
docker run后,报错为:
['/ppo_eval/ppo_eval/evaluate', '/usr/local/lib/python39.zip', '/usr/local/lib/python3.9', '/usr/local/lib/python3.9/lib-dynload', '/usr/local/lib/python3.9/site-packages', '../', '/home/b121-legion/Projects/ppo_docker/ppo_eval']
Traceback (most recent call last):
File "/ppo_eval/./ppo_eval/evaluate/evaluate_async.py", line 14, in <module>
from RL.actor_network import FcActorBetaRBF
ModuleNotFoundError: No module named 'RL'
但是这个代码直接在终端里运行,和在pycharm里运行,都是没问题的。