[Guide] How to install ERPNext v14 on Linux Ubuntu (step-by-step instructions)

Are you executing the commands from root user???

if so, them you need to do the following…

  1. Create a fresh Ubuntu Virtual Server
  2. Set your timezone correctly.
  3. Create a user named “frappe”
  4. Give this user the sudo privileges.
  5. login to server using this user
  6. execute all the commands one by one in same sequence as explained in the video.
  7. I am sure you won’t have any errors after following these steps…
1 Like

Yes! I did that sir now its working fine, Thanks for the video helped me a lot

In such case, you should mark the support as a solution…

The original poster can do that.
And the original post was not a question to begin with.
In such cases the solution marking doesn’t work as a reward or end of thread system.

Maybe the solution for such threads could only be a change in the software, a change which obsoletes the questions and difficulties the original post (a guide) tries to be a solution for.
Assuring an accurate assesment in this sense would not be easy to do with some single click.

Thanks @Peer for your explanation. I was not aware of this…

The latest major version of Frappe & ERPNext v15 is released and this guide continues to work with a few minor tweaks to the version numbers.

Here’s the v15 installation guide: [Guide] How to install ERPNext v15 on Linux Ubuntu (step-by-step instructions)

What is the issue ?

Looks like your development server is running just fine.

Try to access it at or (= http://localhost:8000)

Did you create a site yet? If so, try that name, like http://your-site-name:8000

This is coming while accessing

This looks like you accessed your server, but you didn’t create a site yet.
You can confirm this if the log on the bench (or server) screen (like the one you showed further above) shows some entry when you access it (an error in this case). That means that the server is running, serves the error as it should, because you didn’t configure a site yet.

So I think you should continue from here:
and once you created a site, like for instance “my-frappe.localhost”, try to access it at this name, e.g. http://my-frappe.localhost:8000
There should be a login form with which you can access the frappe framework.

Once this works, you can install an app, depending on what you want installed on your site.

From what i can see, you installed a development environment in a cloud VPS. and i suspect that the port 8000 is not open in your vps. Check to see if that port is open and if not, open the port.

Yes better to switch to Version 15 because many installs fail on 14 as I also noticed.

I am using docker now because the scripting got over the top as over 250 posts on this thread show.

On Docker you can also integrate your custom apps or any other public available frappe apps:

Good luck. The start will not be easy and you really need to understand and read about what is going on.

Not necessarily. This script installs Versions 13, 14 or 15 successfully with very minimal interaction.

You can try it out.

Hello everyone, i tried almost everything but stuck at this error while installing erpnext v14.

I’m using UBUNTU 24 LATEST AS A OS in my system.

frappe@Rahul:~$ sudo pip3 install frappe-bench
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

Any help appreciated, Thank You

frappe-bench) frappe@Rahul:~$ bench init --frappe-branch version-14 frappe-bench
Setting Up Environment
$ python3 -m venv env
$ /home/frappe/frappe-bench/env/bin/python -m pip install --quiet --upgrade pip
$ /home/frappe/frappe-bench/env/bin/python -m pip install --quiet wheel
Getting frappe
$ git clone GitHub - frappe/frappe: Low code web framework for real world applications, in Python and Javascript --branch version-14 --depth 1 --origin upstream
Cloning into ‘frappe’…
remote: Enumerating objects: 3246, done.
remote: Counting objects: 100% (3246/3246), done.
remote: Compressing objects: 100% (2874/2874), done.
remote: Total 3246 (delta 374), reused 1884 (delta 261), pack-reused 0
Receiving objects: 100% (3246/3246), 16.34 MiB | 8.84 MiB/s, done.
Resolving deltas: 100% (374/374), done.
Installing frappe
$ /home/frappe/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/frappe/frappe-bench/apps/frappe
ERROR: Ignored the following yanked versions: 3.6.0a1
ERROR: Ignored the following versions that require a different python version: 5.1 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.10; 5.2 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.11; 5.2a1.dev0 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.11; 5.3 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.11; 5.3a1.dev0 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.12; 5.4 Requires-Python >=2.7, !=3.0., !=3.1., !=3.2., !=3.3., !=3.4., <3.11; 6.0 Requires-Python >=3.6, <3.12; 6.0a1.dev0 Requires-Python >=3.6, <3.12; 6.1 Requires-Python >=3.6, <3.12; 6.2 Requires-Python >=3.6, <3.12
ERROR: Could not find a version that satisfies the requirement RestrictedPython~=6.2 (from frappe) (from versions: 3.4.2, 3.4.3, 3.5.0, 3.5.1, 3.5.2, 3.6.0, 4.0a1, 4.0a2, 4.0a3, 4.0b1, 4.0b2, 4.0b3, 4.0b4, 4.0b5, 4.0b6, 4.0b7, 4.0b8, 4.0, 5.0, 7.0a1.dev0, 7.0a1.dev1, 7.0a2.dev0, 7.0, 7.1, 7.2a1.dev0)
ERROR: No matching distribution found for RestrictedPython~=6.2
subprocess.CalledProcessError: Command '/home/frappe/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/frappe/frappe-bench/apps/frappe ’ 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/lib/python3.12/dist-packages/bench/commands/make.py”, line 75, in init
File “/usr/local/lib/python3.12/dist-packages/bench/utils/render.py”, line 105, in wrapper_fn
return fn(*args, **kwargs)
File “/usr/local/lib/python3.12/dist-packages/bench/utils/system.py”, line 87, in init
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
File “/usr/local/lib/python3.12/dist-packages/bench/app.py”, line 909, in install_app
File “/usr/local/lib/python3.12/dist-packages/bench/bench.py”, line 48, in run
return exec_cmd(cmd, cwd=cwd or self.cwd, _raise=_raise)
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: /home/frappe/frappe-bench/env/bin/python -m pip install --quiet --upgrade -e /home/frappe/frappe-bench/apps/frappe

ERROR: There was a problem while creating frappe-bench
Do you want to rollback these changes? [y/N]: y
INFO: Rolling back Bench “frappe-bench”

Python 3.12 which is the default in Ubuntu 24 isn’t yet supported. You have to change your OS to Ubuntu 22.04