Уведомления

Группа в Telegram: @pythonsu

#1 Июль 4, 2008 12:00:35

vigorouz
От:
Зарегистрирован: 2008-05-19
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при os.getlogin()

Хотел поковырять Fabric (http://www.nongnu.org/fab/), но при его запуске вываливалась ошибка, причём при вызове os.getlogin(). Как выяснилось появляется она не всегда, а только при запуске fab из mc (Midnight Commander). Проверил просто на python:

$ python
Python 2.5.1 (r251:54863, Jun 15 2008, 23:59:20)
[GCC 4.1.2 20070925 (Red Hat 4.1.2-33)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.getlogin()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory
>>>
Это на FC8, тоже самое и с версией 2.4.3 под FC5. Если пускать не из mc всё ок.

Это кончено не критичная проблема и можно пускать fab просто из консоли… но может у кого есть мысли по этому поводу…



Офлайн

#2 Июль 4, 2008 13:38:27

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при os.getlogin()

os.getlogin() - это обертка вокруг posix ф-ции getlogin(man getlogin). И она почемуто при вызове из проги, запущенной в mc ничего не возвращает, а если из консоли, то все норм. Вообщем проблема не в Python.

#include <stdio.h> 
#include <unistd.h>

int main()
{
printf(getlogin());

return 0;
}
Возможно проблема связана с тем как mc форкается и запускает проги.



Офлайн

#3 Июль 4, 2008 14:28:14

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Ошибка при os.getlogin()

mc это еще та прога… мда…



Офлайн

#4 Июль 4, 2008 14:34:25

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при os.getlogin()

Кстати, можно попробовать заменить os.getlogin на такой код:

import os, pwd
def custom_getlogin():
    return pwd.getpwuid(os.getuid())[0]



Офлайн

#5 Июль 4, 2008 15:28:00

vigorouz
От:
Зарегистрирован: 2008-05-19
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при os.getlogin()

slivlen
Кстати, можно попробовать заменить os.getlogin на такой код:
Ок, спасибо за вариант, но всёже буду запускать fab из чистой консоли, чем править каждую новую версию.



Офлайн

#6 Июль 4, 2008 15:29:41

vigorouz
От:
Зарегистрирован: 2008-05-19
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Ошибка при os.getlogin()

bialix
mc это еще та прога… мда…
ага :-) но, млин, привык я к ней…



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version