![](/img/trans.png)
[英]Import local function from a module housed in another directory with relative imports in Jupyter Notebook using Python 3
[英]Running Python on a module with relative imports from another directory
假设在/path/to/foo
我有一个带有python模块的软件包:
/path/to/foo:
| my_package
| __init__.py
| my_module.py
| my_other_package
| __init__.py
| my_other_module.py
文件my_module.py
相对导入my_other_module.py
,如下所示:
from ..my_other_package import my_other_module
我了解可以从Shell执行以下操作:
> cd /path/to/foo
> python -m my_package.my_module
但是,如果我不想更改当前目录怎么办? 有什么方法可以从外壳运行我的模块而不必更改PYTHONPATH
吗?
我尝试了以下方法:
python -m /path/to/foo/my_package.my_module
但这没用。 我得到: Import by filename is not supported
。
获取相对路径:
base_path = os.path.abspath('../my_other_package/') #or any relative directory
将此附加到系统路径(仅是临时的,将在执行后删除): sys.path.append(base_path)
导入该路径中所需的文件: import my_other_module.py
我相信如果您要将文件import directory.file
为import directory.file
(如果我输入错了,请更正),可能需要一个名为__init__.py
的文件(其中没有任何内容)。
该线程显示了替代方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.