Python 将 windowsPath 添加到 sys.path

Python add windowsPath to sys.path

我需要将即时创建的包动态添加到我的 sys.path。我有一个 some.py 文件,在目录 media\TEMP:

中包含一个方法 that

此代码有效:

sys.path.append("""C:\Users\admin\Desktop\tools\testtool\media\TEMP""")

这导致:

[
...
'C:\Users\admin\Desktop\tools\\testTool\venv', 
'C:\Users\admin\Desktop\tools\\testTool\venv\lib\site-packages', 
'C:\Users\admin\Desktop\tools\\testTool\media\TEMP'
]

importlib.import_module(f"{some}.{that}") 有效。但这不起作用:

sys.path.append(Path.cwd().parent.joinpath("media", "TEMP"))

这导致:

[
... 
'C:\Users\admin\Desktop\tools\\testTool\venv', 
'C:\Users\admin\Desktop\tools\\testTool\venv\lib\site-packages', 
WindowsPath('C:/Users/admin/Desktop/tools/testTool/media/TEMP'
]

这失败了 ModuleNotFoundError。 windows 路径不能在 sys.path 中吗?我也试过 Path.resolve() 但没有成功。

您不能将 pathlib.Path 个对象(包括 WindowsPath)放入 sys.path,只能是纯字符串。

换句话说,您需要对它们调用 str(...)

sys.path.append(str(Path.cwd().parent.joinpath("media", "TEMP")))