Python os.getlogin problem

前端 未结 2 1094
时光取名叫无心
时光取名叫无心 2021-02-12 13:56

If i create a file like:

import os
print os.getlogin()

and run it with cron, I get an exception

print os.getlogin()
OSError: [E         


        
2条回答
  •  庸人自扰
    2021-02-12 14:21

    From the os.getlogin() docs: "Returns the user logged in to the controlling terminal of the process." Your script does not have a controlling terminal when run from cron. The docs go on to suggest: "For most purposes, it is more useful to use the environment variable LOGNAME to find out who the user is, or pwd.getpwuid(os.getuid())[0] to get the login name of the currently effective user id."

    Since you don't want to modify GitPython, you could write a script that does this:

    import os, pwd
    
    os.getlogin = lambda: pwd.getpwuid(os.getuid())[0]
    
    import git
    
    # do whatever you need to do with GitPython here
    

    I would suggest filing a bug (or better yet, submitting a patch) with GitPython, though.

提交回复
热议问题