Can't get Camelot running

72 views
Skip to first unread message

Ralf Ullrich

unread,
Oct 25, 2018, 8:57:13 AM10/25/18
to Project Camelot
Hello folks,

I just recently found out about Camelot and thought it's worth trying out, however I can't get it up and running. I'm on different OS's (Windows 10, LinuxMint, Ubuntu, Manjaro), but I would be glad if I managed to get it working on any one of these.

Has anyone here gotten this successfully setup with a current OS? The last update here is from 2013 when I think Ubuntu 12 was current and Python 3 usage wasn't very common.

Nowadays it's even difficult to get QT 4.8 installed, it's been out of maintenance for quite a while and all the Linux repositories don't offer it anymore.

I even tried to buy the Windows package but the link on the website is dead. I used the contact form a few weeks ago but didn't get any response.

This is all quite frustrating ...

Maybe someone here could share some insights, please?

Best regards,
Ralf

Erik Janssens

unread,
Oct 25, 2018, 9:10:02 AM10/25/18
to Project Camelot
Hello Ralf,

Please use the 'no_shared_data' branch from bitbucket.

It works with Python 3 and Qt 5.x (that should be easier).

If you have both PyQt4 and PyQt5 installed, you can force the use of PyQt5 by setting the environment variable CAMELOT_QT_API=PyQt5

Cheers,

Erik

Ralf Ullrich

unread,
Nov 25, 2018, 1:10:58 PM11/25/18
to Project Camelot
Hello Erik,

thanks for the suggestion, this helped a step further along but not very far ...

This is what I've tried to do:
- install a fresh new OS (tried with Ubuntu and Manjaro)
- PyQt5 and QT5 are installed
- created a virtualenv for camelot, and PyQt5 is accessible in there

- hg clone https://bitbucket.org/conceptive/camelot
- hg checkout no_shared_data
- edit requirements.txt because there is a version conflict with chardet, so I removed the explicit versionnumber
- pip install -r requirements.txt --user

- export CAMELOT_QT_API=PyQt5
- cd myprojects/camelot/camelot_example
- python main.py

Then I get different exceptions one after another as I'm fixing them one by one, but after the sixth or so it feels like I'm not getting anywhere ...

The fixes I made so far:
1. in myprojects/camelot/camelot_example/main.py:
    in class ExampleSettings, function setup_model
    change the line "from . import model" to "import camelot_example.model as model"

2. in .virtualenvs/camelot_example/lib/python3.6/site-packages/camelot/view/controls/busy_widget.py:
    in class BusyWidget, function __init__
    change the corresponding line to "self.setSizePolicy( QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)"

3. in .virtualenvs/camelot_example/lib/python3.6/site-packages/camelot/view/workspace.py:
    in class DesktopBackground, function __init__
    change the corresponding line to "actionButtonsLayout = QtWidgets.QGridLayout()"

4. same file, same class, function set_actions
    change the corresponding line to "actionButtonsLayout = self.findChild(QtWidgets.QGridLayout, 'actionButtonsLayout')"

5. in .virtualenvs/camelot_example/lib/python3.6/site-packages/camelot/view/controls/tableview.py:
    in class TableView, function __init__
    change the corresponding line to "splitter = QtWidgets.QSplitter(self)"

    a couple lines further
    change to "size_policy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)"

6. in .virtualenvs/camelot_example/lib/python3.6/site-packages/camelot/view/controls/inheritance.py:
    in class SubclassTree, function __init__
    change the corresponding line to "self.setSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)"


Is it that I did something wrong while installing, is my setup messed up? Or is it something else?

I have no experience with QT, the GUI stuff I did so far happened with wxPython. I'm wondering if the setup really can be such a problem. And I haven't even tried the whole thing on Windows, I assume this is going to be even more difficult considering I've never used py2exe or anything similar.

Could you share some thoughts maybe?

Kind regards,
Ralf

Ralf Ullrich

unread,
Nov 26, 2018, 1:15:23 AM11/26/18
to Project Camelot
Hi Erik,

this morning I thought "well, let's then at least try the online tutorial for the videostore".

So, new virtualenv, same packages installed.

export CAMELOT_QT_API=PyQt5

python -m camelot.bin.camelot_admin


This is what I got:

WARNING:camelot.core.qt:CAMELOT_QT_API environment variable set to PyQt5
INFO:camelot.core.qt:Using PyQt5 Qt bindings
WARNING:camelot.core.qt:QApplication: invalid style override passed, ignoring it.
ERROR:camelot.view.action_runner:gui exception while executing action
Traceback (most recent call last):
  File "/home/ralf/.virtualenvs/videostorewithcamelot/lib/python3.5/site-packages/camelot/view/action_runner.py", line 195, in __next__
    to_send = yielded.gui_run( self._gui_context )
  File "/home/ralf/.virtualenvs/videostorewithcamelot/lib/python3.5/site-packages/camelot/view/action_steps/change_object.py", line 267, in gui_run
    dialog = self.render(gui_context)
  File "/home/ralf/.virtualenvs/videostorewithcamelot/lib/python3.5/site-packages/camelot/view/action_steps/change_object.py", line 263, in render
    self.reject)
  File "/home/ralf/.virtualenvs/videostorewithcamelot/lib/python3.5/site-packages/camelot/view/action_steps/change_object.py", line 82, in __init__
    model.set_value([obj])
  File "/home/ralf/.virtualenvs/videostorewithcamelot/lib/python3.5/site-packages/camelot/view/proxy/collection_proxy.py", line 444, in set_value
    self.refresh()
  File "/home/ralf/.virtualenvs/videostorewithcamelot/lib/python3.5/site-packages/camelot/view/proxy/collection_proxy.py", line 415, in refresh
    post( self.getRowCount, self._refresh_content )
  File "/home/ralf/.virtualenvs/videostorewithcamelot/lib/python3.5/site-packages/camelot/view/model_thread/__init__.py", line 149, in post
    mt.post(request, response, exception, args)
  File "/home/ralf/.virtualenvs/videostorewithcamelot/lib/python3.5/site-packages/camelot/core/threading.py", line 46, in wrapper
    result = original_function(self, *args, **kwargs)
  File "/home/ralf/.virtualenvs/videostorewithcamelot/lib/python3.5/site-packages/camelot/view/model_thread/signal_slot_model_thread.py", line 230, in post
    QtCore.Qt.QueuedConnection )
TypeError: decorated slot has no signature compatible with Task.finished[object]


Kind regards,
Ralf
Reply all
Reply to author
Forward
0 new messages