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。ssh を実行pythonして同じコードを試すと、成功します (つまり、Postオブジェクトのリストを取得します)。

見逃したものはありますか?

編集

すべてのアドバイスをありがとう。問題の原因は、WSGI の設定ミスでした。その後、適切な構成引数を使用してアプリケーションを再マウントしましたが、すべて問題ありません。

4

1 に答える 1

0

最初に頭に浮かぶのはアクセス許可です。アプリが少なくとも読み取りアクセスできるようにアクセス許可が設定されていることを確認してください。listdir読み取れなくても、何かが存在すると言います。

次に考えられるのは、相対パスのように見えるということです。相対パスが正しいと確信していますか? ディレクトリを見つけたことは知っていますがlistdir('.')(それは問題ではありません)、ディレクトリへのフル パスを実際にハード コードするとどうなりますか? (「それは問題ではない」という場合がたくさんあります)

于 2011-08-26T13:28:58.077 に答える