[Sugar-devel] Unable to set up the Music Blocks repository

James Cameron quozl at laptop.org
Mon Sep 28 01:17:10 EDT 2020

Thanks for the report.

You didn't say, but based on your log referencing kernel
5.4.0-48-generic it seems likely you are using Ubuntu 20.04 LTS Focal.

By decision of Ubuntu project, on Ubuntu 20.04 "python" is not a valid
command, by default.  "python3" is valid, as is "python2", but
"python" itself is not, unless you install a special-purpose package
python-is-python3.  "apt show python-is-python3" says, in part

Description: symlinks /usr/bin/python to python3
 In Ubuntu, all python packages use explicit python3 or python2
 interpreter and do not use unversioned /usr/bin/python at all. Some
 third-party code is now predominantly python3 based, yet may use
 This is a convenience package which ships a symlink to point
 the /usr/bin/python interpreter at the current default python3. It may
 improve compatibility with other modern systems, whilst breaking some
 obsolete or 3rd-party software.
 No packages may declare dependencies on this package.

In this case, Music Blocks is third-party code.

However, the exact failing command is not from Music Blocks.  See line
12 of your Gist.  This command is not in Music Blocks repository.  As
shown by "git grep http.server".

So my guess is you have installed a version of npm or node that is
incompatible with Ubuntu 20.04's Python policy.  We can't fix that.

I was able to reproduce your problem using npm and node from Ubuntu
20.04 package archives, and then fix it by editing packages.json to
use "python3 -m http.server 3000" instead.

On Mon, Sep 28, 2020 at 10:20:26AM +0530, Shrey tripathi wrote:
> Hello,
> I didn't know whom to contact regarding this or where to post this, hence am
> putting this up here.
> I was following the steps to set up Music Blocks on my local system from [1]
> here. But after I cloned the repository, changed my directory to 'musicblocks',
> and ran 'npm run serve', I get the following error:
>     > musicblocks at 3.2.0 serve /home/me/SUGAR/musicblocks
>     > python -c "import os, sys; os.system('python -m SimpleHTTPServer 3000
>     --bind') if sys.version_info.major==2 else os.system('python -m
>     http.server 3000 --bind');"
>     sh: 1: python: not found
>     npm ERR! code ELIFECYCLE
>     npm ERR! syscall spawn
>     npm ERR! file sh
>     npm ERR! errno ENOENT
>     npm ERR! musicblocks at 3.2.0 serve: `python -c "import os, sys; os.system
>     ('python -m SimpleHTTPServer 3000 --bind') if
>     sys.version_info.major==2 else os.system('python -m http.server 3000 --bind
>     npm ERR! spawn ENOENT
>     npm ERR!
>     npm ERR! Failed at the musicblocks at 3.2.0 serve script.
>     npm ERR! This is probably not a problem with npm. There is likely
>     additional logging output above.
>     npm ERR! A complete log of this run can be found in:
>     npm ERR!     /home/me/.npm/_logs/2020-09-28T04_33_00_096Z-debug.log
> I have npm(version 6.14.4), node(version v10.19.0), and python installed on my
> Ubuntu system, and I can run 'python' from the command line. The complete error
> log as defined in the last line above can be found [2]here.
> Please help me out here.
> Thanks,
> Shrey
> References:
> [1] https://github.com/sugarlabs/musicblocks#how-to-set-up-a-local-server
> [2] https://gist.github.com/shrey27tri01/800bcc8362eb1929aa56968fbfaa606d

> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel

James Cameron

More information about the Sugar-devel mailing list