Install from Gitlab

I tried to install the "master" branch from gitlab. Is there a guide how to do that. Im strugeling with missing dependencies, missing modules and so on.


  • Normally running `python -m pip install .` in the directory where you have the code will install all dependencies you need.

    (If you want to do development and/or don't want to install those dependencies globally you might want to create a virtual environment specifically for OpenLP so its dependencies are separate from everything else.)

  • I have to install OpenLP on a Windows 11 machine - so i did:

    • Install Git, Pyhton and pip
    • Then git clone
    • change to directory where openlp was stored from clone
    • then: python -m pip install
    • Results with:

    ERROR: Could not find a version that satisfies the requirement (from versions: none)

    ERROR: No matching distribution found for

  • What you need is to do

    python -m pip install .

    Notice the full stop at the end? That's the key part of the command, to tell python to install the current directory, not the file.

  • OK - i could install openlp with:

    python -m pip install .

    Everything seems to work while installation. Bye the way - currently I try to install it under linux (Ubuntu) because it's much easier to have all the build utilities installed.

    How can I run openlp now? There is no starter. So I tried:

    ./ | Result:

    ImportError: cannot import name 'relation' from 'sqlalchemy.orm' (/usr/local/lib/python3.10/dist-packages/SQLAlchemy-2.0.0b2-py3.10.egg/sqlalchemy/orm/

    The command "openlp" gives the same error...

  • Ah yes, OpenLP doesn't support SQLAlchemy 2.0 yet. You can try "python -m pip install SQLAlchemy==1.4.42" and that should install a compatible version of SQLAlchemy till we get that sorted out.

  • YES - now I can start OpenLP. Under Ubuntu the command is:

    python3 -m pip install SQLAlchemy==1.4.42

    After that a simple "openlp" in the console starts OpenLP.

    Thank you!

    Next step is: I want to figure out how to install it on a windows machine. I'll leave a comment as soon as I got it.

  • It's much harder to get the installation to work on Windows :-(

    Installed MS Visual Studio but still an error while trying to install:

    "Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?"

    Don't know what is missing or how to install....

  • On Windows, you would need to run "python" -- I don't know what "./" would do on Windows.

    You should look at the builders/ file in

  • After a fresh install of Ubuntu - i did the same installation as above: creating a folder, git clone, then:

    python3 -m pip install .

    python3 -m pip install SQLAlchemy==1.4.42

    OpenLP is running, but when I try add a song to the service - OpenLP crash:

    Traceback (most recent call last):

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/engine/", line 1900, in _execute_context


    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/engine/", line 736, in do_execute

    cursor.execute(statement, parameters)

    sqlite3.OperationalError: no such column: media_files.file_hash

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

    Traceback (most recent call last):

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/openlp/core/lib/", line 602, in on_add_click

    self.add_to_service(item, position=drop_position)

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/openlp/core/lib/", line 623, in add_to_service

    service_item = self.build_service_item(item, remote=remote, context=ServiceItemContext.Service)

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/openlp/core/lib/", line 663, in build_service_item

    if self.generate_slide_data(service_item, item=item, remote=remote, context=context):

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/openlp/plugins/songs/lib/", line 627, in generate_slide_data

    if song.media_files:

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/orm/", line 482, in __get__

    return self.impl.get(state, dict_)

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/orm/", line 942, in get

    value = self._fire_loader_callables(state, key, passive)

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/orm/", line 978, in _fire_loader_callables

    return self.callable_(state, passive)

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/orm/", line 912, in _load_for_state

    return self._emit_lazyload(

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/orm/", line 1046, in _emit_lazyload

    result = session.execute(

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/orm/", line 1714, in execute

    result = conn._execute_20(statement, params or {}, execution_options)

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/engine/", line 1705, in _execute_20

    return meth(self, args_10style, kwargs_10style, execution_options)

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/sql/", line 333, in _execute_on_connection

    return connection._execute_clauseelement(

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/engine/", line 1572, in _execute_clauseelement

    ret = self._execute_context(

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/engine/", line 1943, in _execute_context


    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/engine/", line 2124, in _handle_dbapi_exception


    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/util/", line 208, in raise_

    raise exception

    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/engine/", line 1900, in _execute_context


    File "/home/ralfrupf/.local/lib/python3.10/site-packages/sqlalchemy/engine/", line 736, in do_execute

    cursor.execute(statement, parameters)

    sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such column: media_files.file_hash

    [SQL: SELECT AS media_files_id, media_files.song_id AS media_files_song_id, media_files.file_path AS media_files_file_path, media_files.file_hash AS media_files_file_hash, media_files.type AS media_files_type, media_files.weight AS media_files_weight

    FROM media_files

    WHERE ? = media_files.song_id ORDER BY media_files.weight]

    [parameters: (14,)]

    (Background on this error at:

  • sqlite3.OperationalError: no such column: media_files.file_hash

    This is a known issue... I either already committed a fix, or I have one queued up for committing.

  • So, currently there is no way to have working openlp if installed from gitlab?

  • It's working for me, cause obviously that's how we develop OpenLP, so there must be something in the song you're creating that triggers that error.

    What's the commit hash you have there? Mine is bd811c2b7a246964db36814c2ed3839b3eeb8765

  • I changed the work folder of openlp back to standard and imported the songs from the database - problem solved - know it works again. There was something wrong the previous used data folders. Thanks for the hint!

Sign In or Register to comment.