【发布时间】:2021-10-26 08:37:12
【问题描述】:
我有一个 Python 项目,我正在使用 PyCharm 在本地 PC 上工作,我从 Google Colab 服务器执行代码(因为我需要 GPU)。
我使用 GitHub 将我的项目上传到 Colab(我将包上传到 GitHub,然后在 Colab 中克隆它)。
但是,我在导入方面遇到问题。
包结构是这样的:
a/
->b/
->c/
-> script1.py
-> script2.py
->d/
-> script3.py
script1.py 导入 script2.py 和 script3.py。
我尝试这样导入:
import script2
from b.d import script3
这是我的测试用例:
-
在我的 PC 本地,主脚本位于文件夹
a -
远程在 Google Colab 上,主要脚本是笔记本(显然在文件夹 a 之外)。
在这两种情况下,我的导入都会得到 ModuleNotFoundError。
但如果我像这样使用相对导入:
from . import script2
from ..d import script3
它在上述两种情况下都很好用,但是 PyCharm 抱怨相对导入,并且脚本只会在主文件夹位于 b 之外时执行。
我尝试将__init__.py 添加到文件夹d,但老实说,我仍然不完全理解这些文件的用途。从我读到的内容来看,它们在 Python 3.3+ 中是多余的(我使用 Python 3.7)。
所以我的问题是:无论主脚本的位置如何,我怎样才能使导入随时工作?
提前致谢
【问题讨论】:
标签: python python-3.x import