Hey everyone, I was able to fix the timezone module error in the notebook 04_single_factor_zipline by using this fix:
We added a few lines of code at the beginning of the notebook to simulate the zoneinfo
module using pytz
. This is necessary because the latest version of some dependencies requires zoneinfo
, which isn’t available in Python versions below 3.9. Here’s the code to add:
import sys
import pytz
class ZoneInfo(pytz.tzinfo.BaseTzInfo):
def __init__(self, key):
self._key = key
self._tzinfo = pytz.timezone(key)
def __getattr__(self, name):
return getattr(self._tzinfo, name)
sys.modules['zoneinfo'] = type('zoneinfo', (), {'ZoneInfo': ZoneInfo})
# Now you can import Zipline without errors
import zipline
This code creates a fake zoneinfo
module that uses pytz
under the hood. It tricks the system into thinking zoneinfo
is available, allowing Zipline and its dependencies to work properly.
Remember to run this code before importing Zipline or running any Zipline-related code in your notebook. This solution allows you to continue using Python 3.8 without having to upgrade to 3.9+ or make any changes to your environment.