Форум сайта python.su
0
Здравствуйте!
Я хотел написать программу, которая будет проверять доступность узлов по ICMP протоколу. Пробовал разное, в том числе готовые варианты программы ping с сайта PyPI. Я не помню что использовал для установки этих пакетов, но в итоге ОС стала пинговать используя скрипты python. Потом, решив использовать для своей задачи системный пинг, я удалял пакеты с PyPI используя то же средство что и для установки. Но ОС продолжает пытаться пинговать используя скрипты, выдавая при этом ошибку что не может их найти. При этом под другим пользователем системный пинг работает нормально.
Скорее всего проблема в настройках окружения или реестре, я пробовал играться с параметрами, но решить проблему не удалось.
ОС - Window 8.1 Версия питона 3.4.
Скрин ошибки во вложении.
Помогите, пожалуйста.
Прикреплённый файлы:
Снимок123.PNG (8,3 KБ)
Офлайн
253
:) :)
windows windows Ох Эх. А вот в unix есть такая команда - который.
Она делает примерно следующее:
#! /usr/bin/env python # Variant of "which". # On stderr, near and total misses are reported. # '-l<flags>' argument adds ls -l<flags> of each file found. import sys if sys.path[0] in (".", ""): del sys.path[0] import sys import os from stat import * def Name(fil, first=1): u""" search file name for given executable """ if first: return Names([fil])[0] else: return Names([fil]) def Names(fils): u""" search file name for executables list """ pathlist = os.environ['PATH'].split(os.pathsep) sts = 0 res = [] for prognm in fils: ident = () drb, prog = os.path.split(prognm) if drb: if os.path.exists(prognm): res.append(os.path.abspath(prognm)) else: for dr in pathlist: filename = os.path.join(dr, prog) try: st = os.stat(filename) except os.error: continue if not S_ISREG(st[ST_MODE]): raise LookupError(filename + ': not a disk file') else: mode = S_IMODE(st[ST_MODE]) if mode & 0b111: if not ident: # print filename res.append(filename) ident = st[:3] else: if st[:3] == ident: s = 'same as: ' else: s = 'also: ' res.append(filename) else: raise LookupError(filename + ': not executable') return res # Name(r"C:\apps\Notepad++\notepad++.exe") if __name__ == '__main__': for i in sys.argv[1:]: res = Name(i) print(res)
Офлайн
0
Спасибо за ответ, сегодня вечером буду перед тем компьютером, отпишусь что и как.
Офлайн
0
doza_and![]()
windows windows Ох Эх. А вот в unix есть такая команда - который.Она делает примерно следующее:
Офлайн
253
Туда валятся все скрипты которые предоставляют устанавливаемые пакеты. Поэтому доку надо читать про то что ставите. По умолчанию там немного стоит. По идее модули содержат doc строки для начала их и надо читать. Там обычно есть ссылки на сайт где можно получить более подробное описание.
Офлайн