TypeError: is_day_now() missing 1 required positional argument: 'rawOffset'
「Weather Underground」や「World Weather Online」を利用すると、「My Weatherインジケーター」が起動しない、もしくは天気情報が取得できなくなる問題がLaunchpadに報告されています。Launchpad
- Missing parameter in is_day_now, applet crashes on initialization for Weather Underground
- Cannot use API after last update (end of June 2014)
My Weatherインジケーターのバージョン
「My Weatherインジケーター」のバージョンは「0.6.8-0extras14.04.5」です。エラーの確認
「My Weatherインジケーター」が起動しない場合や天気情報が取得できない場合、この問題が原因かどうか調べるには、「端末」から「My Weatherインジケーター」を起動する必要があります。Dash等のアプリケーションランチャーから「My Weatherインジケーター」を起動しても、このエラーは表示されません。
ここではウェザーサービスに「Weather Underground」を選択しています。
1.端末から起動
「端末」を起動し、以下のコマンドを実行します。
/opt/extras.ubuntu.com/my-weather-indicator/bin/my-weather-indicator
以下のように「My Weatherインジケーター」が起動します。
2.エラー
しばらくすると、以下のように「TypeError: is_day_now() missing 1 required positional argument: 'rawOffset'」エラーが表示され、「My Weatherインジケーター」が終了します。
Traceback (most recent call last):
File "/opt/extras.ubuntu.com/my-weather-indicator/bin/my-weather-indicator", line 50, in <module>
mwi=MWI()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/myweatherindicator.py", line 135, in __init__
self.load_preferences()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/myweatherindicator.py", line 368, in load_preferences
self.work()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/myweatherindicator.py", line 192, in work
self.set_menu()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/myweatherindicator.py", line 504, in set_menu
weather = self.weatherservice1.get_weather()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/wundergroundapi.py", line 146, in get_weather
weather_data = self._get_weather()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/wundergroundapi.py", line 85, in _get_weather
if weatherservice.is_day_now(weather_data['current_conditions']['sunrise_time_utc'],weather_data['current_conditions']['sunset_time_utc']):
TypeError: is_day_now() missing 1 required positional argument: 'rawOffset'
File "/opt/extras.ubuntu.com/my-weather-indicator/bin/my-weather-indicator", line 50, in <module>
mwi=MWI()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/myweatherindicator.py", line 135, in __init__
self.load_preferences()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/myweatherindicator.py", line 368, in load_preferences
self.work()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/myweatherindicator.py", line 192, in work
self.set_menu()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/myweatherindicator.py", line 504, in set_menu
weather = self.weatherservice1.get_weather()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/wundergroundapi.py", line 146, in get_weather
weather_data = self._get_weather()
File "/opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/wundergroundapi.py", line 85, in _get_weather
if weatherservice.is_day_now(weather_data['current_conditions']['sunrise_time_utc'],weather_data['current_conditions']['sunset_time_utc']):
TypeError: is_day_now() missing 1 required positional argument: 'rawOffset'
対応策
すでにこの問題は報告されており、アップデートで対応される予定です。アップデートが待てない人は、以下の方法で修正可能です。
1.テキストエディターの起動
「My Weatherインジケーター」のソースコードを修正するため、「root」でテキストエディターを起動し、修正するファイルを開きます。「端末」を起動し、以下のコマンドを実行します。
sudo -i gedit /opt/extras.ubuntu.com/my-weather-indicator/share/my-weather-indicator/weatherservice.py
2.修正箇所の確認
テキストエディターが起動したら、修正箇所を探します。「def is_day_now」で検索します。
以下のように修正箇所が見つります。
修正する箇所は赤線の箇所です。
3.修正
以下のように修正を行います。「=0」を追記します。
rawOffset=0
修正したらファイルを保存しテキストエディターを終了します。