On 03/02/2015 10:53 AM, Jaleks wrote:
Am Montag, 2. März 2015 19:26:03 UTC+1 schrieb Adrian Klaver:
On 03/02/2015 09:07 AM, Jaleks wrote:
>
>
> Am Montag, 2. März 2015 17:59:27 UTC+1 schrieb Adrian Klaver:
>
> On 03/02/2015 08:19 AM, [email protected]
<javascript:> wrote:
> > Hi all,
> >
> > somehow I do not get the auto-completion of Spyder (2.3.1
out of
> > current Debian Sid) working for GTK usage.
> > Following code was taken (and modified) from the PyGtk
tutorial:
> >
>
> >
> > which also made no difference (even after restarting Spyder)
> > The code is in either case working as expected, so that
should
> not be
> > the problem.
> >
> > If anyone has an idea how to fix this I'd be quite happy.
>
> Do you have auto-completion working for anything?
>
>
>
>
> Auto-completion and showing of documentation works fine for other
> modules (os, sys, matplotlib), including self written ones.
>
> Do you have Rope installed on your machine?
>
>
> Spyder's list of optional dependencies says "rope >=0.9.2 : 0.10.2
> (OK)", also all other optional dependencies (except of sympy) are
> installed and listed as OK.
Tried it here and saw the same thing. With some digging I think I know
the reason. PyGTK is just a wrapper around the GTK library, which I
believe is written in C. So when you are trying to find information
on a
function it does not show anything because there are no doc strings in
the C function and the Python wrapper does not generate any either. It
is easier to see if you do the import in IPython and then do
dialog.show?
Indeed, if I do
|
fromgi.repository importGtk
dialog
=Gtk.MessageDialog(None,0,Gtk.MessageType.ERROR,Gtk.ButtonsType.CLOSE,"unformated
message")
|
If I am following correctly the above is using PyGObject not PyGtk.
in a fresh (Spyder's integrated) IPython, I get auto-completion for
'dialog.' and also (sometimes) documentation when opening the first
bracket of a function. Where that sometimes means, that I can not
pinpoint it, when it works and when not. But what is reproducable is,
that typing "Gtk.AboutDialogClass(" results in following Spyder error
(in its internal console).
|
Traceback(most recent call last):
File"/usr/lib/python2.7/dist-packages/spyderlib/plugins/inspector.py",line
100,invalidate
valid =self.is_valid(qstr)
File"/usr/lib/python2.7/dist-packages/spyderlib/plugins/inspector.py",line
82,inis_valid
returnshell.is_defined(objtxt,force_import=True)
File"/usr/lib/python2.7/dist-packages/spyderlib/widgets/internalshell.py",line
453,inis_defined
returnself.interpreter.is_defined(objtxt,force_import)
File"/usr/lib/python2.7/dist-packages/spyderlib/interpreter.py",line
314,inis_defined
namespace=self.locals)
File"/usr/lib/python2.7/dist-packages/spyderlib/utils/dochelpers.py",line
292,inisdefined
module=__import__(base,globals(),namespace)
File"/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py",line
27,in<module>
from..overrides importoverride,strip_boolean_result,deprecated_init
ValueError:Attemptedrelative importinnon-package
|
So, your answer sounds merely like a bug (or non-implemented feature) of
Spyder, and not so much, that I am doing something wrong?
Tracebacks are best read back to front, so the problem seems to be in:
/usr/lib/python2.7/dist-packages/gi/overrides/Gtk.py
in particular:
ValueError: Attempted relative import in non-package
Two things:
1) Spyder is now at 2.3.3, so you might want to upgrade.
2) I honestly think this is Python wrapping GTK problem. My guess is you
will find an answer quicker asking this on a PyGTK/ PyGObject mailing list.
>
> >
> > (As I am quite new to Python, Spyder and also GTK, these trys
might also
> > not be "the way" to import GTK libs, so if anybody could help out
in any
> > direction I'd be happy.)
> >
> > Thanks, Jaleks
>
>
--
Adrian Klaver
[email protected]
--
You received this message because you are subscribed to the Google Groups
"spyder" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/spyderlib.
For more options, visit https://groups.google.com/d/optout.