【发布时间】:2020-10-23 03:21:03
【问题描述】:
我正在尝试一个结构如下的项目:
root_folder
├── __init__.py
├── a_folder
│ ├── __init__.py
│ └── script_1.py
├── b_folder
│ ├── __init__.py
│ └── script_2.py
└── script_3.py
我在 root_folder 上打开 IDE(VS Code)。我将空的__init__.py 文件添加到子文件夹和root_folder。我也保存所有并重新启动 IDE。
但是,当我尝试在script_2 中导入script_1 时,出现错误:
# in script_2.py
from a_folder import script_1
ModuleNotFoundError: No module named 'script_1'
我也尝试了很多其他的方法,比如
# in script_2.py
from root_folder.a_folder import script_1
# Or
from .a_folder import script_1
但它们仍然不起作用。我到处搜索,但仍然无法解决。你能不能给我一些提示?谢谢!
更新
以下是路径的一些打印结果:
# when I try to run script_2 in b_folder
print(os.path.abspath(''))
print(os.getcwd())
---/home/nick/Desktop/root_folder
---/home/nick/Desktop/root_folder
print(sys.path)
---
['/home/nick/Desktop/root_folder/b_folder', '/home/nick/anaconda3/envs/pytorch101/lib/python37.zip', '/home/nick/anaconda3/envs/pytorch101/lib/python3.7', '/home/nick/anaconda3/envs/pytorch101/lib/python3.7/lib-dynload', '/home/nick/anaconda3/envs/pytorch101/lib/python3.7/site-packages']
【问题讨论】:
-
__init__.py将文件夹定义为模块。import script_1 from a_folder -
我怀疑你在打这个:stackoverflow.com/a/45448394/812183 但我没有足够的信心将 VTC 视为重复
-
嗨,我认为这不是重复的,原因有两个:首先,我正在尝试运行同级脚本,但不是父脚本。就像我尝试运行
script_3.py一样,那么您的链接就是答案。其次是……相对路径和绝对路径在这里都不起作用……但是还是非常感谢您的帮助!
标签: python visual-studio visual-studio-code