我正在运行一个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_all
、even_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
现在一切都很顺利。