我正在尝试使用如下代码将目录添加到PATH:
PROJECT_DIR = Path(__file__).parents[2]
sys.path.append(
PROJECT_DIR / 'apps'
)
它不起作用。如果我打印sys.path
,我会看到类似这样的内容:
[..., PosixPath('/opt/project/apps')]
我应该如何修复这段代码?写str(PROJECT_DIR / 'apps')
是正常的吗?
resolve()
方法。这将使其成为绝对路径——因为__file__并不总是绝对路径。 - florisla您也可以使用os.fspath
。它返回路径的文件系统表示。
import os
PROJECT_DIR = Path(__file__).parents[2]
APPS_DIR = PROJECT_DIR / 'apps'
sys.path.append(os.fspath(APPS_DIR))
Documentation: https://docs.python.org/3/library/os.html#os.fspath
project_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)),"..","..")
sys.path.append(os.path.join(project_dir,"apps"))
#or maybe you need it at the start of the path
sys.path.insert(0,os.path.join(project_dir,"apps"))
.parents[2]
这一部分。 - kharandziukos.path
是一个非常好的库!对于Python <3,pathlib
的东西都不会起作用。 - hiro protagonist
str
? - hiro protagoniststr
:路径的字符串表示是原始的文件系统路径本身(以本地格式表示,例如在 Windows 下使用反斜杠),您可以将其传递给任何接受文件路径作为字符串的函数。 - vaultah