Swiss accounting software

Hello, I tried to install the following from github.com:

However, this has not really worked as I cannot see this moduel in ERPNEXT.

Here is all the code I used and all the details which were generated:

frappe@erpnext:/opt/frappe-bench$ bench get-app https://github.com/onfuseag/swiss_accounting_software.git
Getting swiss_accounting_software
$ git clone https://github.com/onfuseag/swiss_accounting_software.git  --depth 1 --origin upstream
Cloning into 'swiss_accounting_software'...
remote: Enumerating objects: 81, done.
remote: Counting objects: 100% (81/81), done.
remote: Compressing objects: 100% (66/66), done.
remote: Total 81 (delta 14), reused 45 (delta 11), pack-reused 0 (from 0)
Receiving objects: 100% (81/81), 46.64 KiB | 1.55 MiB/s, done.
Resolving deltas: 100% (14/14), done.
Ignoring dependencies of https://github.com/onfuseag/swiss_accounting_software.git. To install dependencies use --resolve-deps
Installing swiss_accounting_software
$ uv pip install --quiet -e /opt/frappe-bench/apps/swiss_accounting_software  --python /opt/frappe-bench/env/bin/python
$ yarn install --check-files
yarn install v1.22.22
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 0.08s.
$ bench build --app swiss_accounting_software
Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 138, in get_app_commands
    app_command_module = importlib.import_module(f"{app}.commands")
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1314, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 491, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'
Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 48, in invoke
    return super().invoke(ctx)
           ~~~~~~~~~~~~~~^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1970, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1353, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 907, in invoke
    return callback(*args, **kwargs)
  File "/opt/frappe-bench/apps/frappe/frappe/commands/utils.py", line 90, in build
    bundle(
    ~~~~~~^
        mode,
     ^^^^^
    ...<6 lines>...
        esbuild_target=esbuild_target,
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/opt/frappe-bench/apps/frappe/frappe/bundler.py", line 235, in bundle
    make_asset_dirs(hard_link=hard_link)
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/bundler.py", line 383, in make_asset_dirs
    symlinks = generate_assets_map()
  File "/opt/frappe-bench/apps/frappe/frappe/bundler.py", line 322, in generate_assets_map
    pymodule = frappe.get_module(app_name)
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 840, in get_module
    return importlib.import_module(modulename)
           ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'

No module named 'erpnextswiss'
ERROR: bench build --app swiss_accounting_software
subprocess.CalledProcessError: Command 'bench build --app swiss_accounting_software' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/frappe/.local/bin/bench", line 10, in <module>
    sys.exit(cli())
             ~~~^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/cli.py", line 132, in cli
    bench_command()
    ~~~~~~~~~~~~~^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/commands/make.py", line 181, in get_app
    get_app(
    ~~~~~~~^
        git_url,
     ^^^^^^^^
    ...<7 lines>...
        compress_artifacts=compress_artifacts,
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/app.py", line 787, in get_app
    app.install(verbose=verbose, skip_assets=skip_assets, restart_bench=restart_bench)
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/utils/render.py", line 126, in wrapper_fn
    return fn(*args, **kwargs)
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/app.py", line 254, in install
    install_app(
    ~~~~~~~~~~~^
        app=app_name,
     ^^^^^^^^^^^^^
    ...<6 lines>...
        using_cached=using_cached,
     ^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/app.py", line 969, in install_app
    build_assets(bench_path=bench_path, app=app, using_cached=using_cached)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/utils/bench.py", line 405, in build_assets
    exec_cmd(command, cwd=bench_path, env=env)
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/utils/__init__.py", line 193, in exec_cmd
    raise CommandFailedError(cmd) from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError: bench build --app swiss_accounting_software

Thanks for your assistance and help!

Hi @pinderbitzin

It seems erpnextswiss is dependency

Either install automatically

bench get-app GitHub - onfuseag/swiss_accounting_software: Extend ERPNext for Switzerland with QR bills, payment automation and much more · GitHub --resolve-deps

or install manually first

bench get-app https://github.com/libracore/erpnextswiss.git

Best of luck

Hi @asieftejani

I tried the automatic one, but there’s a lot of red!

frappe@erpnext:/opt/frappe-bench$ bench get-app https://github.com/onfuseag/swiss_accounting_software.git --resolve-deps
Following apps will be installed
1. https://github.com/onfuseag/swiss_accounting_software.git 
Compatible version of swiss_accounting_software is already installed
ERROR: [Errno 2] No such file or directory: './apps/https://github.com/onfuseag/swiss_accounting_software.git/swiss_accounting_software.git/__init__.py'
Traceback (most recent call last):
  File "/home/frappe/.local/bin/bench", line 10, in <module>
    sys.exit(cli())
             ~~~^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/cli.py", line 132, in cli
    bench_command()
    ~~~~~~~~~~~~~^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/click/core.py", line 1442, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/click/core.py", line 1363, in main
    rv = self.invoke(ctx)
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/click/core.py", line 1830, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/click/core.py", line 1226, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/click/core.py", line 794, in invoke
    return callback(*args, **kwargs)
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/commands/make.py", line 181, in get_app
    get_app(
    ~~~~~~~^
        git_url,
     ^^^^^^^^
    ...<7 lines>...
        compress_artifacts=compress_artifacts,
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/app.py", line 746, in get_app
    install_resolved_deps(
    ~~~~~~~~~~~~~~~~~~~~~^
        bench,
     ^^^^^^
    ...<3 lines>...
        verbose=verbose,
     ^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/app.py", line 851, in install_resolved_deps
    app.update_app_state()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/app.py", line 296, in update_app_state
    bench.apps.sync(
    ~~~~~~~~~~~~~~~^
        app_dir=self.app_name,
     ^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
        required=self.local_resolution,
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/bench.py", line 278, in sync
    self.update_apps_states(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        app_name=app_name, app_dir=app_dir, branch=branch, required=required
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/bench.py", line 231, in update_apps_states
    version = get_current_version(app_name, self.bench.name)
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/utils/app.py", line 325, in get_current_version
    with open(init_path) as f:
         ~~~~^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: './apps/https://github.com/onfuseag/swiss_accounting_software.git/swiss_accounting_software.git/__init__.py'

Thanks for your feedback!

@pinderbitzin

cd ~/frappe-bench

bench build

bench --site your-site-name migrate

bench --site your-site-name clear-cache

bench restart

Thank you for your help, ahsantareen.

Here all from the terminal, since it did not quite work:

rappe@erpnext:/opt/frappe-bench$ bench build
Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 138, in get_app_commands
    app_command_module = importlib.import_module(f"{app}.commands")
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1314, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 491, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'
Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 48, in invoke
    return super().invoke(ctx)
           ~~~~~~~~~~~~~~^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1970, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1353, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 907, in invoke
    return callback(*args, **kwargs)
  File "/opt/frappe-bench/apps/frappe/frappe/commands/utils.py", line 66, in build
    frappe.init("")
    ~~~~~~~~~~~^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 225, in init
    setup_module_map(include_all_apps=not (is_request or is_job or frappe.flags.in_migrate))
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 1063, in setup_module_map
    for module in get_module_list(app):
                  ~~~~~~~~~~~~~~~^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 904, in get_module_list
    return get_file_items(get_app_path(app_name, "modules.txt"))
                          ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 869, in get_app_path
    return get_pymodule_path(app_name, *joins)
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 899, in get_pymodule_path
    return abspath(join(dirname(get_module(scrub(modulename)).__file__ or ""), *joins))
                                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 840, in get_module
    return importlib.import_module(modulename)
           ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'

No module named 'erpnextswiss'
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ pwd
/opt/frappe-bench
frappe@erpnext:/opt/frappe-bench$ bench build
Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 138, in get_app_commands
    app_command_module = importlib.import_module(f"{app}.commands")
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1314, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 491, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'
Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 48, in invoke
    return super().invoke(ctx)
           ~~~~~~~~~~~~~~^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1970, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1353, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 907, in invoke
    return callback(*args, **kwargs)
  File "/opt/frappe-bench/apps/frappe/frappe/commands/utils.py", line 66, in build
    frappe.init("")
    ~~~~~~~~~~~^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 225, in init
    setup_module_map(include_all_apps=not (is_request or is_job or frappe.flags.in_migrate))
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 1063, in setup_module_map
    for module in get_module_list(app):
                  ~~~~~~~~~~~~~~~^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 904, in get_module_list
    return get_file_items(get_app_path(app_name, "modules.txt"))
                          ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 869, in get_app_path
    return get_pymodule_path(app_name, *joins)
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 899, in get_pymodule_path
    return abspath(join(dirname(get_module(scrub(modulename)).__file__ or ""), *joins))
                                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 840, in get_module
    return importlib.import_module(modulename)
           ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'

No module named 'erpnextswiss'
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ 
frappe@erpnext:/opt/frappe-bench$ pwd
/opt/frappe-bench
frappe@erpnext:/opt/frappe-bench$ bench build
Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 138, in get_app_commands
    app_command_module = importlib.import_module(f"{app}.commands")
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1314, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 491, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'
Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 48, in invoke
    return super().invoke(ctx)
           ~~~~~~~~~~~~~~^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1970, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1353, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 907, in invoke
    return callback(*args, **kwargs)
  File "/opt/frappe-bench/apps/frappe/frappe/commands/utils.py", line 66, in build
    frappe.init("")
    ~~~~~~~~~~~^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 225, in init
    setup_module_map(include_all_apps=not (is_request or is_job or frappe.flags.in_migrate))
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 1063, in setup_module_map
    for module in get_module_list(app):
                  ~~~~~~~~~~~~~~~^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 904, in get_module_list
    return get_file_items(get_app_path(app_name, "modules.txt"))
                          ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 869, in get_app_path
    return get_pymodule_path(app_name, *joins)
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 899, in get_pymodule_path
    return abspath(join(dirname(get_module(scrub(modulename)).__file__ or ""), *joins))
                                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 840, in get_module
    return importlib.import_module(modulename)
           ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'

No module named 'erpnextswiss'
frappe@erpnext:/opt/frappe-bench$ bench --site site1.local migrate
Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 138, in get_app_commands
    app_command_module = importlib.import_module(f"{app}.commands")
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1314, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 491, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'
Migrating site1.local

Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 48, in invoke
    return super().invoke(ctx)
           ~~~~~~~~~~~~~~^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1970, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1353, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 907, in invoke
    return callback(*args, **kwargs)
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/decorators.py", line 34, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/opt/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 28, in _func
    ret = f(ctx.obj, *args, **kwargs)
  File "/opt/frappe-bench/apps/frappe/frappe/commands/site.py", line 722, in migrate
    ).run(site=site)
      ~~~^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/migrate.py", line 275, in run
    frappe.init(site)
    ~~~~~~~~~~~^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 225, in init
    setup_module_map(include_all_apps=not (is_request or is_job or frappe.flags.in_migrate))
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 1063, in setup_module_map
    for module in get_module_list(app):
                  ~~~~~~~~~~~~~~~^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 904, in get_module_list
    return get_file_items(get_app_path(app_name, "modules.txt"))
                          ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 869, in get_app_path
    return get_pymodule_path(app_name, *joins)
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 899, in get_pymodule_path
    return abspath(join(dirname(get_module(scrub(modulename)).__file__ or ""), *joins))
                                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 840, in get_module
    return importlib.import_module(modulename)
           ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'

No module named 'erpnextswiss'
frappe@erpnext:/opt/frappe-bench$ bench --site site1.local clear-cache
Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 138, in get_app_commands
    app_command_module = importlib.import_module(f"{app}.commands")
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1314, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 491, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'
Traceback (most recent call last):
  File "/opt/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 48, in invoke
    return super().invoke(ctx)
           ~~~~~~~~~~~~~~^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1970, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 1353, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/core.py", line 907, in invoke
    return callback(*args, **kwargs)
  File "/opt/frappe-bench/env/lib/python3.14/site-packages/click/decorators.py", line 34, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/opt/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 28, in _func
    ret = f(ctx.obj, *args, **kwargs)
  File "/opt/frappe-bench/apps/frappe/frappe/commands/utils.py", line 156, in clear_cache
    frappe.init(site)
    ~~~~~~~~~~~^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 225, in init
    setup_module_map(include_all_apps=not (is_request or is_job or frappe.flags.in_migrate))
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 1063, in setup_module_map
    for module in get_module_list(app):
                  ~~~~~~~~~~~~~~~^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 904, in get_module_list
    return get_file_items(get_app_path(app_name, "modules.txt"))
                          ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 869, in get_app_path
    return get_pymodule_path(app_name, *joins)
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 899, in get_pymodule_path
    return abspath(join(dirname(get_module(scrub(modulename)).__file__ or ""), *joins))
                                ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/opt/frappe-bench/apps/frappe/frappe/__init__.py", line 840, in get_module
    return importlib.import_module(modulename)
           ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/python/cpython-3.14.8-linux-x86_64-gnu/lib/python3.14/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1406, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1371, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1335, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'erpnextswiss'

No module named 'erpnextswiss'
frappe@erpnext:/opt/frappe-bench$ bench restart
$ sudo supervisorctl restart frappe-bench-web:
frappe-bench-web:frappe-bench-node-socketio: stopped
frappe-bench-web:frappe-bench-frappe-web: stopped
frappe-bench-web:frappe-bench-frappe-web: started
frappe-bench-web:frappe-bench-node-socketio: started
$ sudo supervisorctl restart frappe-bench-workers:
frappe-bench-workers:frappe-bench-frappe-schedule: stopped
frappe-bench-workers:frappe-bench-frappe-short-worker-0: stopped
frappe-bench-workers:frappe-bench-frappe-long-worker-0: stopped
frappe-bench-workers:frappe-bench-frappe-schedule: started
frappe-bench-workers:frappe-bench-frappe-short-worker-0: started
frappe-bench-workers:frappe-bench-frappe-long-worker-0: started
frappe@erpnext:/opt/frappe-bench$ bench get-app https://github.com/onfuseag/swiss_accounting_software.git --resolve-deps
Following apps will be installed
1. https://github.com/onfuseag/swiss_accounting_software.git 
Compatible version of swiss_accounting_software is already installed
ERROR: [Errno 2] No such file or directory: './apps/https://github.com/onfuseag/swiss_accounting_software.git/swiss_accounting_software.git/__init__.py'
Traceback (most recent call last):
  File "/home/frappe/.local/bin/bench", line 10, in <module>
    sys.exit(cli())
             ~~~^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/cli.py", line 132, in cli
    bench_command()
    ~~~~~~~~~~~~~^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/click/core.py", line 1442, in __call__
    return self.main(*args, **kwargs)
           ~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/click/core.py", line 1363, in main
    rv = self.invoke(ctx)
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/click/core.py", line 1830, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/click/core.py", line 1226, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/click/core.py", line 794, in invoke
    return callback(*args, **kwargs)
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/commands/make.py", line 181, in get_app
    get_app(
    ~~~~~~~^
        git_url,
     ^^^^^^^^
    ...<7 lines>...
        compress_artifacts=compress_artifacts,
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/app.py", line 746, in get_app
    install_resolved_deps(
    ~~~~~~~~~~~~~~~~~~~~~^
        bench,
     ^^^^^^
    ...<3 lines>...
        verbose=verbose,
     ^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/app.py", line 851, in install_resolved_deps
    app.update_app_state()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/app.py", line 296, in update_app_state
    bench.apps.sync(
    ~~~~~~~~~~~~~~~^
        app_dir=self.app_name,
     ^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
        required=self.local_resolution,
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/bench.py", line 278, in sync
    self.update_apps_states(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        app_name=app_name, app_dir=app_dir, branch=branch, required=required
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/bench.py", line 231, in update_apps_states
    version = get_current_version(app_name, self.bench.name)
  File "/home/frappe/.local/share/uv/tools/frappe-bench/lib/python3.13/site-packages/bench/utils/app.py", line 325, in get_current_version
    with open(init_path) as f:
         ~~~~^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: './apps/https://github.com/onfuseag/swiss_accounting_software.git/swiss_accounting_software.git/__init__.py'
frappe@erpnext:/opt/frappe-bench$ 

Thank for your feedback.

@pinderbitzin looks like there is no such App installed on your bench.

please check either you are using correct Github repo for your this App.

Hi @pinderbitzin,

swiss_accounting_software is ONFUSE AG’s app, and its code doesn’t reference erpnextswiss (most likely from a other company). So the error probably comes from your bench setup, not from the app. To narrow it down, could you post the output of these commands, run from /opt/frappe-bench?

cat sites/apps.txt
ls apps/
bench version
bench --site <your-site> list-apps

And two questions:

  1. Did you try to install erpnextswiss or another Swiss app on this bench before?
  2. After get-app, did you run bench --site <your-site> install-app swiss_accounting_software?

If you’d rather not assemble Swiss accounting from separate apps yourself: we’re Centura AG, the currently only official Frappe partner based in Switzerland. Our Swiss localization for ERPNext v16 covers the whole Swiss accounting cycle in one package:

  • QR bills with QR-IBAN and SCOR references, printed straight on your invoices
  • Bank connection via EBICS: account statements (camt.053/054) come in automatically every night, with no manual file uploads
  • Bank matching that matches incoming payments to open invoices, including batch payments and salary payments
  • Supplier payments as pain.001, sent to the bank via EBICS, with the bank’s payment status reported back
  • VAT return from your ERPNext bookings, including the net tax rate method (Saldosteuersatz)
  • Swiss payroll: AHV, ALV, UVG, BVG and withholding tax

We set it up, migrate your data, train your team and host and maintain the system for you, so you never have to deal with bench errors like this one.

If that sounds interesting, write to us at [email protected] or book a free demo at centura.ch. We’re happy to show it on your own processes, in German or English.

Either way, post the output above and we’ll try to help you get it running here in the thread.

Thank you for your help, @ahsantareen and @marc_centura .
I found out what the problem was. Indeed, I tried to install erpnextswiss, but this doesn’t function with newer versions. So I could not install the swiss_accounting_software.
I was working on a test db, so I just restored the original one and made the commands described above and it worked!

@marc_centura I will come back to your offer.

Wish you all a nice day.