gpt4 book ai didi

python - TypeError : join() argument must be str or bytes, 不是 'PosixPath'

转载 作者:行者123 更新时间:2023-12-04 15:17:02 25 4
gpt4 key购买 nike

因此,我收到以下错误:TypeError: join() 参数必须是 str 或 bytes,而不是 'PosixPath'

它发生在检查我在 Ubuntu 16.04 上安装的 Django 时。完整的错误是:

    STATIC_ROOT = os.path.join(BASE_DIR, 'static')
File "/usr/lib/python3.5/posixpath.py", line 89, in join
genericpath._check_arg_types('join', a, *p)
File "/usr/lib/python3.5/genericpath.py", line 143, in _check_arg_types
(funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'PosixPath'

这是来自 settings.py 文件。

在我的文件中:

from pathlib import Path
import os

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
...
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

在我的开发环境中,它正在运行并运行,但在这里我收到错误。生产环境中的 Python 版本为 3.5.1-3。通常这些包也应该被安装(pip freeze/install -r)。

任何人有想法将我推向正确的方向吗?

提前致谢

最佳答案

仅使用 pathlib 库可以使它更容易:

BASEPATH = Path(__file__).resolve().parent.parent

STATIC_ROOT = BASEPATH.joinpath('static')
MEDIA_ROOT = BASEPATH.joinpath('media')

PosixPath 提供了更多的自由来指定,例如,仅文件名或文件列表。最终,您始终可以将 PosixPath 转换为字符串:

str(MEDIA_ROOT)

关于python - TypeError : join() argument must be str or bytes, 不是 'PosixPath',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64154269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com