Уведомления

Группа в Telegram: @pythonsu

#1 Июль 19, 2015 15:52:29

Guo
Зарегистрирован: 2015-07-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает системный Ping

Здравствуйте!
Я хотел написать программу, которая будет проверять доступность узлов по ICMP протоколу. Пробовал разное, в том числе готовые варианты программы ping с сайта PyPI. Я не помню что использовал для установки этих пакетов, но в итоге ОС стала пинговать используя скрипты python. Потом, решив использовать для своей задачи системный пинг, я удалял пакеты с PyPI используя то же средство что и для установки. Но ОС продолжает пытаться пинговать используя скрипты, выдавая при этом ошибку что не может их найти. При этом под другим пользователем системный пинг работает нормально.

Скорее всего проблема в настройках окружения или реестре, я пробовал играться с параметрами, но решить проблему не удалось.

ОС - Window 8.1 Версия питона 3.4.
Скрин ошибки во вложении.

Помогите, пожалуйста.

Прикреплённый файлы:
attachment Снимок123.PNG (8,3 KБ)

Офлайн

#2 Июль 19, 2015 19:16:21

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Не работает системный Ping

:) :)
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)

больше похоже что остался ping.bat в путях. Если есть ping.py тоже может влиять.
попробуйте
which.py ping.exe
which.py ping.bat



Офлайн

#3 Июль 21, 2015 10:32:47

Guo
Зарегистрирован: 2015-07-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает системный Ping

Спасибо за ответ, сегодня вечером буду перед тем компьютером, отпишусь что и как.

Офлайн

#4 Июль 21, 2015 22:33:50

Guo
Зарегистрирован: 2015-07-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает системный Ping

doza_and
windows windows Ох Эх. А вот в unix есть такая команда - который.Она делает примерно следующее:

Знаете, каким то образом прошло. Недели 3-4 не работало, а тут вдруг прошло. Но правда после запуска which.py.

Я правильно понимаю, что which.py только находит исполняемые файлы для программ и на решение моей проблемы повлиять не мог?

Ткните, если вам не сложно, где почитать про скрипты, которые собраны в C:\Python34\Tools\Scripts и для чего они там. Можно на английском.

Офлайн

#5 Июль 21, 2015 22:40:02

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Не работает системный Ping

Туда валятся все скрипты которые предоставляют устанавливаемые пакеты. Поэтому доку надо читать про то что ставите. По умолчанию там немного стоит. По идее модули содержат doc строки для начала их и надо читать. Там обычно есть ссылки на сайт где можно получить более подробное описание.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version