从另一个目录导入函数
Import functions from another directory
我是 运行 一个 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
访问 odd_all
、even_all
在 src.py
内声明的函数。但是,我收到错误消息: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
现在一切正常。
我是 运行 一个 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
访问 odd_all
、even_all
在 src.py
内声明的函数。但是,我收到错误消息: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
现在一切正常。