Ah, vlc, yes I have that. Updated previous post with the correction and sys info.
Found the error log, it looks like a Python module from the python-wxgtk2.8 library is missing:
- Code: Select all
$> less /tmp/kurtosis-tribler.log
Traceback (most recent call last):
File "Tribler/Main/tribler.py", line 27, in <module>
from Tribler.Main.vwxGUI.MainFrame import FileDropTarget
File "/usr/share/tribler/Tribler/Main/vwxGUI/__init__.py", line 10, in <module>
from Tribler.Main.Utility.GuiDBHandler import onWorkerThread, startWorker
File "/usr/share/tribler/Tribler/Main/Utility/GuiDBHandler.py", line 6, in <module>
from wx.lib.delayedresult import SenderWxEvent, SenderCallAfter, AbortedException,\
ImportError: No module named delayedresult
The import statement that's causing it, in
/usr/share/tribler/Tribler/Main/Utility/GuiDBHandler.py:
- Code: Select all
#Written by Niels Zeilemaker
#Extending wx.lib.delayedresult with a startWorker method which uses single producer
#Additionally DelayedResult is returned, allowing a thread to wait for result
import wx
from wx.lib.delayedresult import SenderWxEvent, SenderCallAfter, AbortedException,\
DelayedResult, SenderNoWx
...
However, it appears that the delayedresult.py module is installed and
where it looks like it should be (eg, in
wx/lib/delayedresult.py):
- Code: Select all
$> less /var/lib/dpkg/info/python-wxgtk2.8.list|grep delayed
/usr/share/pyshared/wx-2.8-gtk2-unicode/wx/lib/delayedresult.py
/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/lib/delayedresult.py
$> locate delayedresult.py
/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/lib/delayedresult.py
/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/lib/delayedresult.pyc
/usr/share/pyshared/wx-2.8-gtk2-unicode/wx/lib/delayedresult.py
/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode/wx/lib/delayedresult.py is a symbolic link to
/usr/share/pyshared/wx-2.8-gtk2-unicode/wx/lib/delayedresult.py, so lets just verify it contains the missing class DelayedResult...
- Code: Select all
$> less /usr/share/pyshared/wx-2.8-gtk2-unicode/wx/lib/delayedresult.py|grep DelayedResult
only requirement on consumer is that it must accept a DelayedResult instance
'Handler', 'DelayedResult', 'Producer', 'startWorker', 'PreProcessChain')
simply added as attribute whenever a DelayedResult is created.
delayedResult = DelayedResult(result, jobID=self.__jobID)
exception will be raised when DelayedResult.get() is called."""
delayedResult = DelayedResult(extraInfo,
class DelayedResult:
"""You should never have to call this yourself. A DelayedResult
Yup, it's there. So can I import wx.lib.delayedresult.DelayedResult in the Python interpreter?
- Code: Select all
$> python
Python 2.7.3 (default, Apr 20 2012, 22:39:59)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>> from wx import DelayedResult
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name DelayedResult
>>> import wx.lib.delayedresult
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named delayedresult
>>> import wx.lib
>>> import wx.lib.delayedresult
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named delayedresult
Aha. Tribler can't import the class
DelayedResult because it can't find its module
delayedresult.py. I'm not a Python expert, so I'm not sure where to go from here. Not sure why this module can't be imported, even though it appears to be where where Tribler expects. Any ideas?