デフォルトの代わりに Python Ping を使用する Windows Powershell

デフォルトの代わりに Python Ping を使用する Windows Powershell

Windows PowerShell を使用して ping を実行しようとしていますが、結果は次のようになります。

ping google.com
Traceback (most recent call last):
  File "C:\Program Files\Python36\Scripts\ping.py", line 31, in <module>
    from impacket import ImpactDecoder, ImpactPacket
ImportError: No module named impacket

Windows のデフォルトの ping コマンドの代わりに、Python の ping コマンドを実行しようとしているようです。どうすれば解決できますか?

パス:

$env:PATH.split(";")
C:\Program Files\Python36\Scripts\
C:\Program Files\Python36\
C:\Program Files\Python37\Scripts\
C:\Program Files\Python37\
C:\Program Files\AdoptOpenJDK\jre-8.0.212.03-hotspot\bin
C:\Program Files (x86)\AdoptOpenJDK\jre-8.0.212.03-hotspot\bin
C:\Program Files\AdoptOpenJDK\jre-11.0.3.7-hotspot\bin
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\WINDOWS\System32\OpenSSH\
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL
C:\Program Files\Intel\Intel(R) Management Engine Components\DAL
C:\Program Files\Intel\WiFi\bin\
C:\Program Files\Common Files\Intel\WirelessCommon\
C:\Program Files\PuTTY\
C:\Program Files (x86)\Intel\Intel(R) Memory And Storage Tool\
C:\Users\user\AppData\Local\Microsoft\WindowsApps

C:\Program Files\JetBrains\PyCharm 2020.1\bin

C:\texlive\2019\bin\win32
C:\Program Files (x86)\Nmap
C:\Program Files\Intel\WiFi\bin\
C:\Program Files\Common Files\Intel\WirelessCommon\

答え1

問題分析

問題は、Windows が PATH 変数の各エントリを調べて、呼び出している名前のバイナリがそこに存在するかどうかを確認し、最初の一致で検索を中止することです。PATH 変数には、Scripts一般的な Windows パスの前に Python エントリが含まれているため、ping というスクリプトが含まれているため、デフォルトのコマンドが上書きされます。

PATH 変数の先頭にカスタム パスを追加することは一般的ではありません。通常は末尾に追加します。

直し方:

上記のリストを取得し、;区切り文字としてすべてのエントリを結合します。ただし、次のエントリをリストの最後に移動してください。

C:\Program Files\Python36\Scripts\
C:\Program Files\Python36\
C:\Program Files\Python37\Scripts\
C:\Program Files\Python37\
C:\Program Files\AdoptOpenJDK\jre-8.0.212.03-hotspot\bin
C:\Program Files (x86)\AdoptOpenJDK\jre-8.0.212.03-hotspot\bin
C:\Program Files\AdoptOpenJDK\jre-11.0.3.7-hotspot\bin

次に、次の手順に従って PATH 変数を更新します。

  1. Windowsデスクトップで右クリックぼくのコンピュータ
  2. ポップアップメニューで、プロパティ
  3. の中にシステムプロパティウィンドウで、高度なタブをクリックし、環境変数
  4. の中にシステム変数ウィンドウ、ハイライトパスをクリックし、「編集」をクリックします。
  5. [システム変数の編集] ウィンドウで、リストを準備したエントリのリスト (投稿からの完全なリストを並べ替え、セミコロンを区切り文字として使用) に置き換えます。最後の文字がセミコロン (;) でない場合は、セミコロンを追加します。

最後に、コンピューターを再起動して、すべてのプログラムが更新された PATH 変数を使用することを確認します。

編集

Windows 10 では PATH エディターが更新され、変数を編集するときに小さなエディター ウィンドウが表示され、各エントリを個別に編集したり、エントリを上下に移動したりできるようになりました。Python エントリをリストの一番下に移動するだけです。

関連情報