<Python> OSError: [Errno 22] Invalid argument
Python
Script
をクーロンcron
さん使って自動実行させていたら、エラーを発見。
OSError: [Errno 22] Invalid argument
うーん、、なんじゃろと見ていたら、os.getlogin()
でこけていた。
ぐーぐるした結果、os.getlogin()
はターミナルTerminal
の情報を取りにいくらしい。
なので、cron
さんからだと情報が取れずエラーを吐く。。。っぽい。。。
解決策は、pwd.getpwid(os.getuid())[0]
か、```getpass.getuser()````らしい。
In [1]: import os In [2]: import pwd --------------------------------------------------------------------------- ImportError Traceback (most recent call last) <ipython-input-2-4b8a6427d7f8> in <module>() ----> 1 import pwd ImportError: No module named 'pwd' In [3]: import getpass In [4]: os.getlogin() Out[4]: 'hage' In [5]: getpass.getuser() Out[5]: 'hage'
Windows/Anacondaだと、pwd
がなかった。。。
ふーん。。。