我在Django
设置中使用此代码来构建数据库路径
from os.path import expanduser
defautl_db_path = expanduser("~")+"/db.sqlite3"
如果我在系统范围内安装Django,代码运行良好,但如果我在virtualenv
内运行应用程序,则应用程序会抛出一个异常unable to open database file
。
我该如何解决这个问题?
答案 0 :(得分:1)
您是否检查了进程所有者主目录的权限? 你是在使用Unix操作系统吗?
django用户很可能是www-data。
如果您选中了此选项,则可以尝试通过将用户名添加到〜。
来解决特定用户的主目录from os.path import expanduser
defautl_db_path = expanduser("~www-data")+"/db.sqlite3"
在文档中写道:
os.path.expanduser(路径) 在Unix和Windows上,返回参数,其初始组件为〜或〜,用户的主目录替换为该用户。
在Unix上,如果设置了初始〜,则由环境变量HOME替换;否则,通过内置模块pwd在密码目录中查找当前用户的主目录。直接在密码目录中查找初始〜用户。