Python add windowsPath to sys.path



我需要动态地将动态创建的包添加到我的sys.path。我有一个some.py文件,在目录mediaTEMP中包含一个方法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中失败。不能在sys.path的窗口路径?我也尝试了Path.resolve(),但没有成功。

不能将pathlib.Path对象(包括WindowsPath)放在sys.path中,只能使用纯字符串。

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

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

最新更新