2

Windows でコマンドを実行すると問題が発生しますが、Linux では完全に機能します。

コンテキストを提供しますが、これは私の問題を理解するために必要ではありません。バッチモードで gimp を使用しています。

python-fu 呼び出しを実行するcallPythonFuScript.py別の Python スクリプトを呼び出す Python スクリプトがあります。pythonFu.py

ではcallPythonFuScript.py、内部の関数を呼び出して実行するときにコマンド ラインを作成pythonFu.pyします。これはコマンドラインです:

gimp-console-2.8 -idf --batch-interpreter python-fu-eval -b 'import sys;sys.path=['.']+sys.path;import pythonFu;pythonFu.myFunction("arg1","arg2","arg3") ' -b 'pdb.gimp_quit(1)'

このコマンドは Linux では完全に機能しますが、Windows で実行しようとすると機能しません。

エラー メッセージは次のとおりです。

The opening of C:\Users\myRep\sys; failed : no such file or directory
The opening of C:\Users\myRep\sys.path=['.']+sys.path; failed : no such file or directory
The opening of C:\Users\myRep\"arg1","arg2","arg3")' failed no such file or directory

Windows は Linux とは異なる方法で文字を解釈すると想定しています。これは正しいです?この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

コメントで述べたように、コマンド プロンプトが引数と見なすものと、Python が eval にリテラル文字列として渡すものとの間にエスケープの問題があります。

-b 'import sys;sys.path=["."]+sys.path;import pythonFu;pythonFu.myFunction("arg1","arg2","arg3")'

それでもエラーが発生する場合は、二重引用符をエスケープする必要がある可能性があります。

-b 'import sys;sys.path=[\".\"]+sys.path;import pythonFu;pythonFu.myFunction(\"arg1\",\"arg2\",\"arg3\")'
于 2012-08-29T17:59:49.507 に答える