刷新页面后,当前工作目录在python中显示不同

时间:2016-05-13 18:10:11

标签: python nginx uwsgi

这是非常奇怪的情况。 我试图从头开始使用Python创建一个Web框架。 我正试图使用​​下面的代码获取文件的当前工作目录(技术上是当前.py文件的完整路径)。

os.getcwd()

问题是...... 如果我键入上面的代码并重新启动uwsgi服务器然后打印它。 第一次,它总是打印如下。

/var/www/html/mydocroot

然后,如果我刷新页面,' mydocroot'目录会自动消失,如下所示。

/var/www/html

如上所述刷新页面后,它会创建相同的输出。 我花了差不多一整天才弄明白这个问题。 任何想法或相同的经历?

我也试过了,

os.path.dirname(os.path.abspath(__file__))

这一个。

例如,

/var/www/html/mydocroot/Core/Settings

是我重新启动uwsgi服务器时的结果,

/var/www/html/Core/Settings

当我刷新页面时,' mydocroot'如上所述,它自行消失。



server{
        server_name example.com;
        rewrite ^(.*) http://www.example.com permanent;
}

server {
    listen 80;
    server_name example.com *.example.com;

    location / {
        include         uwsgi_params;
        uwsgi_pass      unix:/var/www/html/example/myapp.sock;
    }
}




以上是我的nginx服务器配置。以下是wsgi配置。



[uwsgi]
module = wsgi:application

master = true
processes = 1
touch-reload = /var/www/html/ggr/wsgi.py
socket = myapp.sock
chmod-socket = 664
vacuum = true
max-requests = 1
die-on-term = true
logger = file:/var/log/ggr.log
catch-exceptions = true




1 个答案:

答案 0 :(得分:1)

文件没有"当前的工作目录"。对于给定的进程,只有一个全局当前工作目录。当前工作目录可以更改

os.chdir('/new/working/directory')

如果您想要特定文件的目录,可以执行此操作

os.path.dirname(os.path.abspath(__file__))