我需要动态地将动态创建的包添加到我的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")))