Reinier Hernández
Reinier Hernández

Reputation: 428

Create a pyqt build in GitLab

I'm making a program in pyqt4, using python3.4 and host on Gitlab. When I'm trying to make a build this fails. This is the .gitlab-ci.yml file form my project:

 before_script:
     - apt-get update -qy
     - apt-get install -y python3 python3-dev python3-pip python3-pyqt4
     - export DISPLAY=:0.0

test:
    script:
        - python3 main.py

The error is: main.py: cannot connect to X server: 0.0. I am trying without export DISPLAY=:0.0 and nothing

Upvotes: 2

Views: 2446

Answers (3)

Tzah Mazuz
Tzah Mazuz

Reputation: 59

Would like to suggest an alternative answer to azzamasa's

  1. Using pytest with pytest-qt, add a pytest option (preferably in conftest.py) to indicate if the application should show or not:

    def pytest_addoption(parser):
        parser.addoption('--show-gui', action='store_true')
    
  2. Use qapp_args fixture to provide the needed arguments -platform offscreen:

    @pytest.fixture(scope="session")
    def qapp_args(show_gui: bool):
        if not show_gui:
            empty_arg_stands_for_exe_path = ''
            return [empty_arg_stands_for_exe_path, '-platform', 'offscreen']
        return []
    

Upvotes: 1

azzamsa
azzamsa

Reputation: 2115

I've tried:

  • include ['-platform', 'minimal'] in sys.argv for QApplication : Failed
  • tried xvfb : Got xvfb-run: error: xauth command not found (even after setting the PATH)

But QT_QPA_PLATFORM: "offscreen" work like a charm and saved the day.

example:

pytest:
  image: python:3.6
  variables:
    QT_QPA_PLATFORM: "offscreen"
  script:
    - pytest tests/

Thanks to steve

Upvotes: 3

Heinzi
Heinzi

Reputation: 6083

If PyQt5 is an option, Qt 5 has the "minimal" platform plugin. To use it, modify the argv passed to QApplication to include ['-platform', 'minimal'].

(reference: https://stackoverflow.com/a/35355906/829568)

For PyQt4, you could use a virtual X Server:

sudo apt-get install xvfb
xvfb-run python render.py

(reference: https://stackoverflow.com/a/13215192/829568)

Upvotes: 3

Related Questions