python virtualenv无法访问主目录

时间:2016-10-26 13:39:59

标签: python linux django virtualenv

我在Django设置中使用此代码来构建数据库路径

from os.path import expanduser
defautl_db_path = expanduser("~")+"/db.sqlite3"

如果我在系统范围内安装Django,代码运行良好,但如果我在virtualenv内运行应用程序,则应用程序会抛出一个异常unable to open database file

我该如何解决这个问题?

1 个答案:

答案 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在密码目录中查找当前用户的主目录。直接在密码目录中查找初始〜用户。