Windows Powershell verwendet Python Ping anstelle des Standard

Windows Powershell verwendet Python Ping anstelle des Standard

Ich versuche, mit Windows Powershell einen Ping auszuführen, aber das ist das Ergebnis:

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

Es scheint, dass anstelle des Windows-Standard-Ping-Befehls versucht wird, einen Python-Ping-Befehl auszuführen. Wie kann ich das lösen?

WEG:

$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\

Antwort1

Problemanalyse

Ihr Problem besteht darin, dass Windows jeden Eintrag in der PATH-Variable durchgeht und prüft, ob dort eine Binärdatei des von Ihnen aufgerufenen Namens vorhanden ist, und die Suche beim ersten Treffer abbricht. Da Ihre PATH-Variable die Python- ScriptsEinträge vor den allgemeinen Windows-Pfaden enthält, überschreiben sie Standardbefehle, da sie ein Skript namens Ping enthalten.

Es ist unüblich, benutzerdefinierte Pfade am Anfang der PATH-Variable hinzuzufügen. Normalerweise hängen Sie sie an ihr Ende an.

Wie repariert man:

Nehmen Sie die obige Liste und kombinieren Sie alle Einträge mit ;als Trennzeichen. Achten Sie jedoch darauf, die folgenden Einträge an das Ende der Liste zu verschieben:

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

Befolgen Sie dann diese Schritte, um die PATH-Variable zu aktualisieren:

  1. Klicken Sie auf dem Windows-Desktop mit der rechten MaustasteMein Computer.
  2. Klicken Sie im Popup-Menü aufEigenschaften.
  3. ImSystemeigenschaftenKlicken Sie im Fenster auf dasFortschrittlichund klicken Sie dann aufUmgebungsvariablen.
  4. ImSystemvariablenFenster, markierenWegund klicken Sie auf Bearbeiten.
  5. Ersetzen Sie im Fenster „Systemvariablen bearbeiten“ die Liste durch Ihre vorbereitete Liste von Einträgen (die vollständige Liste aus Ihrem Beitrag, neu sortiert, mit Semikolons als Trennzeichen). Wenn das letzte Zeichen kein Semikolon (;) ist, fügen Sie eines hinzu.

Starten Sie abschließend den Computer neu, um sicherzustellen, dass alle Programme die aktualisierte PATH-Variable verwenden.

Bearbeiten

Offenbar wurde in Windows 10 der PATH-Editor aktualisiert, sodass Sie beim Bearbeiten der Variable ein kleines Editorfenster erhalten, in dem Sie jeden Eintrag einzeln bearbeiten und auch nach oben und unten verschieben können. Verschieben Sie die Python-Einträge einfach an das Ende der Liste.

verwandte Informationen