ERPNext Installation issue over Ubuntu 24.04

Guys I am using Ubuntu over time know a little bit of Linux cli. tried troubleshooting with nginx, redis. but gave up. this is my last resource to get help by posting in the forum. hope to get help.

following is the bench error with ERPnext.
########################

rjbipl@rjbipl-ThinkPad-L540:~/frappe-bench$ bench get-app erpnext --branch version-15
A directory for the application ‘erpnext’ already exists. Do you want to continue and overwrite it? [y/N]: y
INFO: App moved from apps/erpnext to archived/apps/erpnext-2024-11-19_11
Getting erpnext
$ git clone GitHub - frappe/erpnext: Free and Open Source Enterprise Resource Planning (ERP) --branch version-15 --depth 1 --origin upstream
Cloning into ‘erpnext’…
remote: Enumerating objects: 4765, done.
remote: Counting objects: 100% (4765/4765), done.
remote: Compressing objects: 100% (4037/4037), done.
Receiving objects: 100% (4765/4765), 16.26 MiB | 3.31 MiB/s, done.
remote: Total 4765 (delta 971), reused 2058 (delta 509), pack-reused 0 (from 0)
Resolving deltas: 100% (971/971), done.
Ignoring dependencies of erpnext. To install dependencies use --resolve-deps
Installing erpnext
$ /home/rjbipl/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/rjbipl/frappe-bench/apps/erpnext
$ yarn install --check-files
yarn install v1.22.22
warning …/…/package.json: No license field
[1/4] Resolving packages…
[2/4] Fetching packages…
[3/4] Linking dependencies…
[4/4] Building fresh packages…
Done in 0.26s.
$ bench build --app erpnext
Traceback (most recent call last):
File “”, line 198, in _run_module_as_main
File “”, line 88, in _run_code
File “/home/rjbipl/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 114, in
main()
File “/home/rjbipl/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 20, in main
click.Group(commands=commands)(prog_name=“bench”)
File “/home/rjbipl/frappe-bench/env/lib/python3.12/site-packages/click/core.py”, line 1157, in call
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/rjbipl/frappe-bench/env/lib/python3.12/site-packages/click/core.py”, line 1078, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File “/home/rjbipl/frappe-bench/env/lib/python3.12/site-packages/click/core.py”, line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/rjbipl/frappe-bench/env/lib/python3.12/site-packages/click/core.py”, line 1685, in invoke
super().invoke(ctx)
File “/home/rjbipl/frappe-bench/env/lib/python3.12/site-packages/click/core.py”, line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/rjbipl/frappe-bench/env/lib/python3.12/site-packages/click/core.py”, line 783, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/rjbipl/frappe-bench/env/lib/python3.12/site-packages/click/decorators.py”, line 33, in new_func
return f(get_current_context(), *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/rjbipl/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 44, in app_group
ctx.obj = {“sites”: get_sites(site), “force”: force, “verbose”: verbose, “profile”: profile}
^^^^^^^^^^^^^^^
File “/home/rjbipl/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 56, in get_sites
elif default_site := frappe.get_conf().default_site:
^^^^^^^^^^^^^^^^^
File “/home/rjbipl/frappe-bench/apps/frappe/frappe/init.py”, line 458, in get_conf
with init_site(site):
File “/home/rjbipl/frappe-bench/apps/frappe/frappe/init.py”, line 468, in enter
init(self.site)
File “/home/rjbipl/frappe-bench/apps/frappe/frappe/init.py”, line 306, in init
setup_redis_cache_connection()
File “/home/rjbipl/frappe-bench/apps/frappe/frappe/init.py”, line 488, in setup_redis_cache_connection
from frappe.utils.redis_wrapper import setup_cache
File “/home/rjbipl/frappe-bench/apps/frappe/frappe/utils/redis_wrapper.py”, line 7, in
from redis.commands.search import Search
ModuleNotFoundError: No module named ‘redis.commands’
ERROR: bench build --app erpnext
subprocess.CalledProcessError: Command ‘bench build --app erpnext’ returned non-zero exit status 1.

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

Traceback (most recent call last):
File “/usr/local/bin/bench”, line 8, in
sys.exit(cli())
^^^^^
File “/usr/local/lib/python3.12/dist-packages/bench/cli.py”, line 132, in cli
bench_command()
File “/usr/local/lib/python3.12/dist-packages/bench/commands/make.py”, line 181, in get_app
get_app(
File “/usr/local/lib/python3.12/dist-packages/bench/app.py”, line 777, in get_app
app.install(verbose=verbose, skip_assets=skip_assets, restart_bench=restart_bench)
File “/usr/local/lib/python3.12/dist-packages/bench/utils/render.py”, line 126, in wrapper_fn
return fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.12/dist-packages/bench/app.py”, line 254, in install
install_app(
File “/usr/local/lib/python3.12/dist-packages/bench/app.py”, line 925, in install_app
build_assets(bench_path=bench_path, app=app, using_cached=using_cached)
File “/usr/local/lib/python3.12/dist-packages/bench/utils/bench.py”, line 380, in build_assets
exec_cmd(command, cwd=bench_path, env=env)
File “/usr/local/lib/python3.12/dist-packages/bench/utils/init.py”, line 178, in exec_cmd
raise CommandFailedError(cmd) from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError: bench build --app erpnext

#############################

Hi,

It may help to say what instructions were followed to install Frappe. Try uninstalling Erpnext from the site then reinstalling the site.

https://frappeframework.com/docs/user/en/bench/reference/uninstall-app

@smino He was getting the ERPNext app, not installing it.

@rajsharmav12 I think you are using frappe v16 (current default version) instead of v15. You can install Frappe v15 along with ERPNext v15 as I did:

bench init --dev --frappe-branch version-15 ~/frappe-dev
  • Change ~/frappe-dev to your preferred folder.
  • Delete the --dev option from the above command if you are setting up a production environment.

Go to the bench folder ~/frappe-dev then get the ERPNext app:

cd ~/frappe-dev
bench get-app --branch version-15 https://github.com/frappe/erpnext --resolve-deps

Thanks @tunggnu . Would it make sense to remove ERPNext completely before trying this or use the --overwrite option ?

My first command will create a new bench. The second command will get the ERPNext app into that bench. So, he will work on the new bench instead of the old one.