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