使用 mod_wsgi 从 python 中的当前目录导入

Import form current directory in python with mod_wsgi

我是 运行 我的 python (3.4) 脚本,使用 apchae+mod_wsgi 和 wsgi 脚本处理程序。

我发现它使用“/”作为执行路径,所以为了方便文件访问,我这样做了

os.chdir( os.path.dirname(environ['SCRIPT_FILENAME']))

在我的脚本启动后。 但是,我注意到由于某种原因 python 不会将当前工作目录添加到 sys.path 以这种方式启动时,因此无法从当前目录进行导入。 除此之外,我发现这种行为非常奇怪,因为它让开发变得非常困难,我想知道是否可以改变这一点。最好不要在每个文件的开头添加一行以将当前路径添加到 sys.path.

您不应该在 Python 代码中更改当前工作目录,在 Python Web 应用程序中通常认为除非 WSGI 服务器会搜索特定目录,否则这种做法通常被认为是不好的做法已专门为此设置。这是因为不同的 WSGI 服务器行为不同,因为它们需要如何连接到任何配套的 Web 服务器(如果使用)。

文档中描述了当前的工作目录问题:

至于解释你能做什么,你最好还是阅读:

如果您使用的是过时的 mod_wsgi 版本,那么我还建议您升级以使用该博客 post 中描述的更好的处理方式。还要确保您也使用守护程序模式而不是嵌入式模式。