7

PythonのCmd.cmdフレームワークでしばらくテストした後、どうしたらよいかわからない問題に気づきました。さらに、私はこれが数時間前に機能していると信じているので(または私はただ夢中です)、これはさらに奇妙です。

次のサンプルコードがあり、WindowsシステムとLinuxシステムの両方でテストされています(したがって、Windowsの問題ではありません)が、タブ補完が機能しません。

Python 2でまったく同じコードを使用すると、Linuxシステムでは機能します(ただし、Windowsシステムでは機能しません)。

import cmd
class Shell ( cmd.Cmd ):    
    def do_test ( self, params ):
        print( 'test: ' + params )

    def do_exit ( self, params ):
        return True

    def do_quit ( self, params ):
        return True

if __name__ == '__main__':
    x = Shell()
    x.cmdloop()

タブ補完を可能にするために、なぜこれが発生するのか、または私に何ができるのか知っていますか?

4

3 に答える 3

5

実際には、Python 2 と 3 の両方の Linux で動作します。ただし、私の python セットアップは readline サポートを使用してコンパイルされています。これは、cmd ドキュメントに従って自動化するために必要です。Linux Python 3 がコンパイルされていないと思われます。

残念ながら、readline は Unix 固有のものです。Windows でのその他のオプションの説明については、Windows でのPython タブ補完を参照してください。

于 2010-02-12T17:58:25.093 に答える