Python expanduser(~)返回/var/www-not/home/ubuntu

Python expanduser(~)返回/var/www-not/home/ubuntu,python,apache,ubuntu,mod-wsgi,Python,Apache,Ubuntu,Mod Wsgi,我有一个烧瓶应用程序运行在apache2上,mod_wsgi在vitualenv中。我正在使用flask应用程序中的子流程来运行Python脚本。Python脚本位于/home/ubuntu/scripts中。脚本按预期运行,但是os.path.expanduser(“~”)不会返回/home/ubuntu,而是返回/var/www 到目前为止,我的解决方法是删除expanduser并对路径进行硬编码,但我很感兴趣的是为什么会发生这种情况,以及是否有一个简单的解决方法 脚本可能以用户身份运行,其

我有一个烧瓶应用程序运行在apache2上,mod_wsgi在vitualenv中。我正在使用flask应用程序中的子流程来运行Python脚本。Python脚本位于
/home/ubuntu/scripts
中。脚本按预期运行,但是
os.path.expanduser(“~”)
不会返回
/home/ubuntu
,而是返回
/var/www


到目前为止,我的解决方法是删除
expanduser
并对路径进行硬编码,但我很感兴趣的是为什么会发生这种情况,以及是否有一个简单的解决方法

脚本可能以用户身份运行,其主目录默认在
/etc/passwd
中定义为
/var/www
脚本可能以用户身份运行,其主目录默认在
/etc/passwd
中定义为
/var/www
欢迎使用StackOverflow!您正在运行
os.path.expanduser(~)
(不带引号)还是
os.path.expanduser(“~”)
(带引号)?如果您正在使用
os
os.path
调用其他命令,则发布示例代码可能会有帮助是实际代码:directory=os.path.expanduser(“~/temp/”)会导致directory=/var/www/temp。我相当肯定unutbu的回复就是答案,只是不知道如何修复它,但现在我知道从哪里开始寻找。欢迎来到StackOverflow!您正在运行
os.path.expanduser(~)
(不带引号)还是
os.path.expanduser(“~”)
(带引号)?如果您正在使用
os
os.path
调用其他命令,则发布示例代码可能会有帮助是实际代码:directory=os.path.expanduser(“~/temp/”)会导致directory=/var/www/temp。我很确定unutbu的回复就是答案,只是还不确定如何修复它,但现在我知道从哪里开始寻找了。谢谢!我是linux新手,所以我需要了解用户和权限,但我认为你是对的。我可以更改www数据的主目录吗?如果我把它改成/home/ubuntu,会不会有安全问题?你不应该改。如果希望代码作为特定用户运行,请确保使用mod_wsgi的守护程序模式,并将守护程序进程组的
user
group
选项设置为
WSGIDaemonProcess
指令。请参阅“谢谢”中的选项!我是linux新手,所以我需要了解用户和权限,但我认为你是对的。我可以更改www数据的主目录吗?如果我把它改成/home/ubuntu,会不会有安全问题?你不应该改。如果希望代码作为特定用户运行,请确保使用mod_wsgi的守护程序模式,并将守护程序进程组的
user
group
选项设置为
WSGIDaemonProcess
指令。请参见中的选项