Problem installing Indian Compliance with ERPNext v15.21.2

I am trying to install India compliance with ERPnext V15.21.2 but getting following error

An error occurred while installing india_compliance: Module import failed for Currency Exchange Settings, the DocType you're trying to open might be deleted.<br> Error: No module named 'frappe.core.doctype.currency_exchange_settings'
2024-04-29 21:23:48 Traceback with variables (most recent call last):
2024-04-29 21:23:48   File "apps/frappe/frappe/commands/site.py", line 445, in install_app
2024-04-29 21:23:48     _install_app(app, verbose=context.verbose, force=force)
2024-04-29 21:23:48       context = {'sites': ['frontend'], 'force': False, 'verbose': False, 'profile': False}
2024-04-29 21:23:48       apps = ('india_compliance',)
2024-04-29 21:23:48       force = False
2024-04-29 21:23:48       _install_app = <function install_app at 0x7f3409248c20>
2024-04-29 21:23:48       filelock = <function filelock at 0x7f340923e020>
2024-04-29 21:23:48       exit_code = 0
2024-04-29 21:23:48       site = 'frontend'
2024-04-29 21:23:48       app = 'india_compliance'
2024-04-29 21:23:48       err = ImportError("Module import failed for Currency Exchange Settings, the DocType you're trying to open might be deleted.<br> Error: No module named 'frappe.core.doctype.currency_exchange_settings'")
2024-04-29 21:23:48   File "apps/frappe/frappe/installer.py", line 273, in install_app
2024-04-29 21:23:48     install_app(required_app, verbose=verbose)
2024-04-29 21:23:48       name = 'india_compliance'
2024-04-29 21:23:48       verbose = False
2024-04-29 21:23:48       set_as_patched = True
2024-04-29 21:23:48       force = False
2024-04-29 21:23:48       sync_jobs = <function sync_jobs at 0x7f3408246840>
2024-04-29 21:23:48       sync_for = <function sync_for at 0x7f3408247880>
2024-04-29 21:23:48       sync_customizations = <function sync_customizations at 0x7f34093ce7a0>
2024-04-29 21:23:48       sync_fixtures = <function sync_fixtures at 0x7f3408247a60>
2024-04-29 21:23:48       app_hooks = {'accounting_dimension_doctypes': ['Bill of Entry', 'Bill of Entry Item'], 'after_app_install': ['india_compliance.install.after_app_install'], 'after_install': ['india_compliance.install.after_install'], 'after_migrate': ['india_compliance.audit_trail.setup.after_migrate'], 'app_color': ['grey'], 'app_description': ['ERPNext app to simplify compliance with Indian Rules and Regulations'], 'app_email': ['hello@indiacompliance.app'], 'app_icon': ['octicon octicon-file-directory'], 'app_include_js': ['india_compliance.bundle.js'], 'app_license': ['GNU General Public License (v3)'], 'app_name': ['india_compliance'], 'app_publisher': ['Resilient Tech'], 'app_title': ['India Compliance'], 'audit_trail_doctypes': ['Accounts Settings', 'Dunning', 'Invoice Discounting', 'Journal Entry', 'Payment Entry', 'Period Closing Voucher', 'Process Deferred Accounting', 'Purchase Invoice', 'Sales Invoice', 'Asset', 'Asset Capitalization', 'Asset Repair', 'Delivery Note', 'Landed Cost Voucher', 'Purchase R...
2024-04-29 21:23:48       installed_apps = ['frappe']
2024-04-29 21:23:48       app = 'frappe/erpnext'
2024-04-29 21:23:48       required_app = 'erpnext'
2024-04-29 21:23:48   File "apps/frappe/frappe/installer.py", line 311, in install_app
2024-04-29 21:23:48     frappe.get_attr(after_install)()
2024-04-29 21:23:48       name = 'erpnext'
2024-04-29 21:23:48       verbose = False
2024-04-29 21:23:48       set_as_patched = True
2024-04-29 21:23:48       force = False
2024-04-29 21:23:48       sync_jobs = <function sync_jobs at 0x7f3408246840>
2024-04-29 21:23:48       sync_for = <function sync_for at 0x7f3408247880>
2024-04-29 21:23:48       sync_customizations = <function sync_customizations at 0x7f34093ce7a0>
2024-04-29 21:23:48       sync_fixtures = <function sync_fixtures at 0x7f3408247a60>
2024-04-29 21:23:48       app_hooks = {'accounting_dimension_doctypes': ['GL Entry', 'Payment Ledger Entry', 'Sales Invoice', 'Purchase Invoice', 'Payment Entry', 'Asset', 'Stock Entry', 'Budget', 'Delivery Note', 'Sales Invoice Item', 'Purchase Invoice Item', 'Purchase Order Item', 'Sales Order Item', 'Journal Entry Account', 'Material Request Item', 'Delivery Note Item', 'Purchase Receipt Item', 'Stock Entry Detail', 'Payment Entry Deduction', 'Sales Taxes and Charges', 'Purchase Taxes and Charges', 'Shipping Rule', 'Landed Cost Item', 'Asset Value Adjustment', 'Asset Repair', 'Asset Capitalization', 'Loyalty Program', 'Stock Reconciliation', 'POS Profile', 'Opening Invoice Creation Tool', 'Opening Invoice Creation Tool Item', 'Subscription', 'Subscription Plan', 'POS Invoice', 'POS Invoice Item', 'Purchase Order', 'Purchase Receipt', 'Sales Order', 'Subcontracting Order', 'Subcontracting Order Item', 'Subcontracting Receipt', 'Subcontracting Receipt Item', 'Account Closing Balance', 'Supplier Quotation', 'Supplier Quota...
2024-04-29 21:23:48       installed_apps = ['frappe']
2024-04-29 21:23:48       before_install = 'erpnext.setup.install.check_frappe_version'
2024-04-29 21:23:48       out = None
2024-04-29 21:23:48       after_install = 'erpnext.setup.install.after_install'
2024-04-29 21:23:48   File "apps/erpnext/erpnext/setup/install.py", line 26, in after_install
2024-04-29 21:23:48     set_single_defaults()
2024-04-29 21:23:48   File "apps/erpnext/erpnext/setup/install.py", line 92, in set_single_defaults
2024-04-29 21:23:48     setup_currency_exchange()
2024-04-29 21:23:48       dt = 'Stock Settings'
2024-04-29 21:23:48       default_values = ()
2024-04-29 21:23:48       doc = <PrintSettings: Print Settings>
2024-04-29 21:23:48       fieldname = 'print_style_preview'
2024-04-29 21:23:48       value = None
2024-04-29 21:23:48   File "apps/erpnext/erpnext/setup/install.py", line 96, in setup_currency_exchange
2024-04-29 21:23:48     ces = frappe.get_single("Currency Exchange Settings")
2024-04-29 21:23:48   File "apps/frappe/frappe/__init__.py", line 1349, in get_single
2024-04-29 21:23:48     return get_doc(doctype, doctype)
2024-04-29 21:23:48       doctype = 'Currency Exchange Settings'
2024-04-29 21:23:48   File "apps/frappe/frappe/__init__.py", line 1329, in get_doc
2024-04-29 21:23:48     doc = frappe.model.document.get_doc(*args, **kwargs)
2024-04-29 21:23:48       args = ('Currency Exchange Settings', 'Currency Exchange Settings')
2024-04-29 21:23:48       kwargs = {}
2024-04-29 21:23:48       frappe = <module 'frappe' from 'apps/frappe/frappe/__init__.py'>
2024-04-29 21:23:48   File "apps/frappe/frappe/model/document.py", line 83, in get_doc
2024-04-29 21:23:48     controller = get_controller(doctype)
2024-04-29 21:23:48       args = ('Currency Exchange Settings', 'Currency Exchange Settings')
2024-04-29 21:23:48       kwargs = {}
2024-04-29 21:23:48       doctype = 'Currency Exchange Settings'
2024-04-29 21:23:48   File "apps/frappe/frappe/model/base_document.py", line 70, in get_controller
2024-04-29 21:23:48     site_controllers[doctype] = import_controller(doctype)
2024-04-29 21:23:48       doctype = 'Currency Exchange Settings'
2024-04-29 21:23:48       site_controllers = {'DocField': <class 'frappe.core.doctype.docfield.docfield.DocField'>, 'DocPerm': <class 'frappe.core.doctype.docperm.docperm.DocPerm'>, 'Module Def': <class 'frappe.core.doctype.module_def.module_def.ModuleDef'>, 'DocType Link': <class 'frappe.core.doctype.doctype_link.doctype_link.DocTypeLink'>, 'System Settings': <class 'frappe.core.doctype.system_settings.system_settings.SystemSettings'>, 'Notification Settings': <class 'frappe.desk.doctype.notification_settings.notification_settings.NotificationSettings'>, 'DefaultValue': <class 'frappe.core.doctype.defaultvalue.defaultvalue.DefaultValue'>, 'Customize Form': <class 'frappe.custom.doctype.customize_form.customize_form.CustomizeForm'>, 'DocType Action': <class 'frappe.core.doctype.doctype_action.doctype_action.DocTypeAction'>, 'DocType State': <class 'frappe.core.doctype.doctype_state.doctype_state.DocTypeState'>, 'Customize Form Field': <class 'frappe.custom.doctype.customize_form_field.customize_form_field.CustomizeFormField'>, 'P...
2024-04-29 21:23:48   File "apps/frappe/frappe/model/base_document.py", line 95, in import_controller
2024-04-29 21:23:48     module = load_doctype_module(doctype, module_name)
2024-04-29 21:23:48       doctype = 'Currency Exchange Settings'
2024-04-29 21:23:48       Document = <class 'frappe.model.document.Document'>
2024-04-29 21:23:48       NestedSet = <class 'frappe.utils.nestedset.NestedSet'>
2024-04-29 21:23:48       module_name = 'Core'
2024-04-29 21:23:48       doctype_info = None
2024-04-29 21:23:48       module_path = None
2024-04-29 21:23:48       class_overrides = {'Address': ['erpnext.accounts.custom.address.ERPNextAddress']}
2024-04-29 21:23:48   File "apps/frappe/frappe/modules/utils.py", line 254, in load_doctype_module
2024-04-29 21:23:48     raise ImportError(msg) from e
2024-04-29 21:23:48       doctype = 'Currency Exchange Settings'
2024-04-29 21:23:48       module = 'Core'
2024-04-29 21:23:48       prefix = ''
2024-04-29 21:23:48       suffix = ''
2024-04-29 21:23:48       app = 'frappe'
2024-04-29 21:23:48       key = ********
2024-04-29 21:23:48       module_name = 'frappe.core.doctype.currency_exchange_settings.currency_exchange_settings'
2024-04-29 21:23:48       msg = "Module import failed for Currency Exchange Settings, the DocType you're trying to open might be deleted.<br> Error: No module named 'frappe.core.doctype.currency_exchange_settings'"
2024-04-29 21:23:48 builtins.ImportError: Module import failed for Currency Exchange Settings, the DocType you're trying to open might be deleted.<br> Error: No module named 'frappe.core.doctype.currency_exchange_settings'

Installation command using

bench get-app --branch version-15 https://github.com/resilient-tech/india-compliance.git;
        bench --site frontend install-app india_compliance;

Any help would be helpful

Install erpnext and lending app, payment before installing indian compliance

I have install erpnext app, but what’s this payment app?

some app go hand in hand that why I was asking you to install also payment, anyway, you can do away with payment but install the rest then retry Indian compliance installation.

Is the app still giving errors

@techmaniacc yes

Which apps have you installed actually, check there documentation, how many apps do indian compliance depends on, guess this should solve the problem. If it persist, can help in meet

It’s working fine now, I have tried in Ubuntu and working like a charm, but it was creating issue in Windows system :frowning:

Also no need to install any other application following is working fine:


[
  {
    "url": "https://github.com/frappe/erpnext.git",
    "branch": "v15.22.0"
  },
  {
    "url": "https://github.com/resilient-tech/india-compliance.git",
    "branch": "v15.7.3"
  }
]