1

良い一日、

いくつかのPythonアプリケーションがWindows7で依存関係を正しく呼び出さないという問題がいくつか発生しました。これらのアプリケーションは、python.exeの引数としてではなく、Pythonの依存関係を直接呼び出します。依存関係チェーン内の各ファイルを変更して最初にpythonコマンドを呼び出すのとは対照的に、Pythonファイルを直接呼び出してパラメーターを正しく渡す方法はありますか、それともPythonへの誤った呼び出しですか?

注:.pyファイルのデフォルトプログラムとしてpython.exeを設定しています

C:\Users\***>ftype | findstr -i python
Python.CompiledFile="C:\Python27\python.exe" "%1" %*
Python.File="C:\Python27\python.exe" "%1" %*
Python.NoConFile="C:\Python27\pythonw.exe" "%1" %*

C:\Users\***>assoc | findstr -i python
.py=Python.File
.pyc=Python.CompiledFile
.pyo=Python.CompiledFile
.pyw=Python.NoConFile

基本的な引数を作成しました-コマンドライン引数を解析して挨拶として出力するPythonスクリプトを解析します。引数が存在しない場合は、生の入力として入力するように求められます。最初にPythonを明示的に呼び出し、呼び出さなかった結果を以下に示します。

C:\Users\***\Desktop>python input.py --greeting="john"
john
The greeting is:  john

C:\Users\***\Desktop>input.py --greeting="john"
None
Give me the greeting. johnrom
The greeting is:  johnrom
4

2 に答える 2

0

最初の数回検索しても答えが見つかりませんでしたが、ついに別のstackoverflowの投稿で答えに出くわしました。

投稿から:

私はこれを解決したと思います。何らかの理由で、レジストリに2番目の場所があります(HKEY_CLASSES_ROOT \ Python.File \ shell \ open \ commandに保存されているファイルの関連付けによって示される場所以外):

[HKEY_CLASSES_ROOT \ Applications \ python.exe \ shell \ open \ command] @ = "\" C:\ Python25 \ python.exe \ "\"%1 \ "%*"

これは私のシステムの制御設定のようです。上記のレジストリ設定は、すべての引数をpython.exeに渡すための「%*」を追加します(何らかの理由でレジストリにありませんでした)。

この行の最後に「%*」を追加することは私にとってはうまくいきましたが、すべての人にとってはうまくいかなかったようです。

于 2012-09-02T07:36:33.163 に答える
0

修正する必要のあるレジストリキーがさらにもう1つあります。この投稿に従って、編集する必要があります

HKEY_CLASSES_ROOT\py_auto_file\shell\open\command

することが"C:\PythonPath\python.exe" "%1" %*

于 2015-06-19T23:07:37.563 に答える