Frequently Asked Questions¶
Common fixes to common errors reported by the Community
AttributeError: ‘OWM25’ object has no attribute ‘xxx’¶
Your code looks like:
>>> from pyowm import OWM
>>> owm = OWM('your-api-key-here')
>>> mgr = owm.weather_manager()
AttributeError: 'OWM25' object has no attribute 'weather_manager'
This happens because you are not running PyOWM v3 and this is because your code is currently based on an old Python 2 setup Python 2 is officially dead and should be removed in favor of Python 3.
What you should do is:
install Python 3.6+
install PyOWM v3+ with
pip3 install pyowm
The above snippet should just work fine then.
Remember to port the rest of your code to Python 3: everything related to PyOWM v2 can be ported using this guide
I cannot use PyOWM 3 so I need to use PyOWM version 2.10¶
This may happen if you still use Python 2 or you use Python 3 but with a minor version that is not supported by PyOWM
Please install PyOWM 2.10 with:
pip2 install pyowm==2.10
And find the PyOWM 2.10 documentation here
ModuleNotFound error upon installing PyOWM development branch from Github¶
Installation of the (potentially unstable) development trunk used to be like this:
$ pip install git+https://github.com/csparpa/pyowm.git@develop
You would get something like:
Collecting git+https://github.com/csparpa/pyowm.git@develop
Cloning https://github.com/csparpa/pyowm.git (to revision develop) to /tmp/pip-req-build-_86bl7ty
[......]
ERROR: Command errored out with exit status 1:
command: /home/me/.local/share/virtualenvs/backend-nPPHZqlJ/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-_86bl7ty/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-_86bl7ty/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ww_gs9y3
cwd: /tmp/pip-req-build-_86bl7ty/
Complete output (17 lines):
Traceback (most recent call last):
[......]
File "/tmp/pip-req-build-_86bl7ty/pyowm/commons/tile.py", line 6, in <module>
from pyowm.utils.geo import Polygon
File "/tmp/pip-req-build-_86bl7ty/pyowm/utils/geo.py", line 4, in <module>
import geojson
ModuleNotFoundError: No module named 'geojson'
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
I’ve realized this way of installing is bad as it does not install PyOWM’s dependencies* along. Therefore the right way to go is:
$ git clone https://github.com/csparpa/pyowm.git
$ cd pyowm && git checkout develop
$ pip install -r requirements.txt && python setup.py install