2

我在我的Bottle应用程序中有这段代码来列出一个充满文件的目录:

[Post(name[:-3]) for name in os.listdir("posts")]

在我的本地计算机上,这很好。但在我的服务器上,我一直收到此错误:

OSError: [Errno 2] No such file or directory: 'posts'

os.listdir('.')$ ls报告目录在那里。os.getcwd()报告我在父目录中并且应该能够访问它。glob.glob("posts/*.md")什么都不返回,所以我认为这不是问题listdir。运行pythonssh 并尝试相同的代码是成功的(即:我得到一个Post对象列表)。

有什么我错过的吗?

编辑

感谢所有的建议。问题的根源是 WSGI 配置错误。我已经使用正确的配置参数重新安装了应用程序,一切都很好。

4

1 回答 1

0

首先想到的是权限——确保设置了您的权限,以便应用程序至少具有读取权限。listdir仍然会说某些东西存在,即使它无法读取它。

接下来的想法是看起来像一个相对路径——你确定相对路径是正确的吗?我知道您已经通过它找到了目录listdir('.')(所以没关系),但是如果您实际上对目录的完整路径进行硬编码会发生什么?(有很多时候“它不应该重要”确实如此)

于 2011-08-26T13:28:58.077 回答