I'm getting this error:
ImportError: cannot import name 'life_table' from 'cdc_life_tables' (C:\Users\tony\OneDrive\Documents\Retirement\retirement-mc-master\cdc_life_tables\__init__.py)
When I try to run this (retirement_mc.py):
from cdc_life_tables import life_table
init .py looks like this
#!/usr/bin/env python
from cdc_life_tables import *
and cdc_life_tables.py contains life_table and looks like this:
def life_table(state_abbrev, demographic_group):
state_abbrev = state_abbrev.upper()
try:
state = abbrev2name[state_abbrev]
except KeyError:
raise ValueError('"{}" not a state abbreviation.'.format(state_abbrev))
state = state.lower().replace(' ', '_')
try:
demographic_group = demographic_group.lower()
if len(demographic_group) > 2:
demographic_group = groups_long2short[demographic_group]
except KeyError:
raise ValueError('"{}" not a valid .'.format(demographic_group))
s = '{}{}_{}.csv'.format(lt_dir, state, demographic_group)
if os.path.exists(s):
df = pd.read_csv(s)
else:
raise ValueError('{} not a demographic group for {}.'.format(demographic_group, state_abbrev))
return df['qx']
if __name__ == '__main__':
q = life_table('PA', 'wf')
I'm using Spyder (Python 3.7)
With this line:
from cdc_life_tables import *
your package is attempting to import *
from itself . You need to import *
from the cdc_life_tables
submodule of the current package, most easily done with a relative import:
from .cdc_life_tables import *
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.