从另一个目录导入函数



我正在运行一个python脚本(app.py(,其中我必须使用位于另一个目录中的另一个脚本(src.py(中的两个函数。结构如下:

Dir:
Dir_1:
__init__.py
src.py
Dir_2:
app.py

我在app.py中使用以下行:

from pathlib import Path
PROJECT = Path(__file__).resolve().parent.parent
PROJECT = PROJECT/'Dir_1'
import sys
sys.path.insert(1, PROJECT)
from src import odd_all, even_all

以访问在src.py内部声明的函数odd_alleven_all。但是,我得到了错误:ModuleNotFoundError: No module named 'src'

我该如何解决这个问题?

您可以使用sys.path.append()将文件的路径附加到系统的路径:

import sys
sys.path.append('/.../Dir/Dir_1')
from src import odd_all, even_all

我设法解决了这个问题。问题是PROJECT是一个Posixpath对象,而SYS只接受字符串。因此,解决方案只是将PROJECT转换为字符串:

from pathlib import Path
PROJECT = Path(__file__).resolve().parent.parent
PROJECT = str(PROJECT)+'/Dir_1'
import sys
sys.path.insert(1, PROJECT)
from src import odd_all, even_all

现在一切都很顺利。

相关内容

  • 没有找到相关文章

最新更新