【发布时间】:2020-04-08 13:41:17
【问题描述】:
我有一个位于目录 (super_dir) 中的自定义 Python 包 (my_package)。我在super_dir(我们称之为sub_dir)的嵌套目录中有一个脚本(my_script.py),它导入my_package并使用它。
如果我通过调用python sub_dir/my_script.py. 从终端窗口(我的工作目录是super_dir)运行脚本,我会收到ModuleNotFound 错误,但是,如果@987654330 它确实工作@ 位于super_dir 内,而不是在sub_dir 内,我只需调用python my_script.py。如果我在 Python 交互窗口中的 VSCode 中运行 my_script.py,它也可以工作(即使我的工作目录是 sub_dir)只要我有这些行
import os
os.chdir('....further_paths/super_dir/')
在脚本的顶部。
我的问题是:我怎样才能让脚本从终端运行,以便它可以保留在sub_dir 内,但仍然可以导入my_package,即使my_package位于“向上”整个目录?
即使上面的行^(更改当前目录)包含在脚本的顶部,只要我从终端窗口运行脚本并且my_script.py 不是,我仍然会收到ModuleNotFound 错误位于super_dir。
提前谢谢你,希望我的问题很清楚!
【问题讨论】:
-
所以你有
super_dir/my_package.py和super_dir/sub_dir/my_script.py的布局? -
没错——除了它真的是
super_dir/my_package/init.py和super_dir/my_package/my_functions.py,因为在总体my_package中有模块和.py文件
标签: python visual-studio-code terminal module importerror