Я пытаюсь запустить ping с помощью Windows PowerShell, но вот результат:
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
Кажется, команда ping python пытается быть выполнена вместо команды ping windows по умолчанию. Как мне решить эту проблему?
ПУТЬ:
$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 содержит записи Python Scripts
перед общими путями Windows, они переопределят команды по умолчанию, поскольку они содержат скрипт под названием 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:
- На рабочем столе Windows щелкните правой кнопкой мышиМой компьютер.
- В всплывающем меню нажмитеХарактеристики.
- вСвойства системыокно, нажмите кнопкуПередовойвкладку, а затем щелкнитеПеременные среды.
- вСистемные переменныеокно, выделитьПутьи нажмите «Изменить».
- В окне «Изменить системные переменные» замените список подготовленным вами списком записей (полный список из вашего поста, переупорядоченный, с точками с запятой в качестве разделителей). Если последний символ не является точкой с запятой (;), добавьте ее.
Наконец перезагрузите компьютер, чтобы убедиться, что все программы используют обновленную переменную PATH.
Редактировать
Кажется, в Windows 10 они обновили редактор PATH, так что при редактировании переменной вы получаете небольшое окно редактора, которое позволяет редактировать каждую запись отдельно, а также перемещать их вверх и вниз. Просто переместите записи Python в конец списка.