conda-forge / glib-feedstock

A conda-smithy repository for glib.
BSD 3-Clause "New" or "Revised" License
3 stars 21 forks source link

GLib-GIO message pops up when using matplotlib #19

Open moorepants opened 7 years ago

moorepants commented 7 years ago

Note this is a copy of https://github.com/ContinuumIO/anaconda-issues/issues/3380. I had the conda forge glib installed.

For a number of months now, anytime I import matplotlib or any other package that imports matplotlib I get the following warning. It takes over the input line. It is especially annoying when I tab complete from a pandas object and it makes it impossible to use. I have not been able to find a solution elsewhere online and my hunch is this is some issue with the anaconda libs conflicting with system libs. I think that it started when I upgraded to Ubuntu 17.04, but am not quite sure.

moorepants@garuda:~$ ipython
Python 3.5.3 | packaged by conda-forge | (default, May 12 2017, 15:07:14) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import matplotlib.pyplot as plt

In [2]: GLib-GIO-Message: Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.
scopatz commented 7 years ago

Is there a known fix?

scopatz commented 7 years ago

Thanks for reporting!

moorepants commented 7 years ago

I've tried a number of "fixes". Nothing works yet.

scopatz commented 7 years ago

:cry: thanks for reporting!

jakirkham commented 7 years ago

Have you tried setting the environment variable GIO_EXTRA_MODULES to point to your system's GIO modules location? On Ubuntu 16.04.2 LTS, this seems to be /usr/lib/x86_64-linux-gnu/gio/modules/.

moorepants commented 7 years ago

Woohoo! That worked.

moorepants@garuda:resonance(master)$ export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/
moorepants@garuda:resonance(master)$ ipython
Python 3.5.3 | packaged by conda-forge | (default, May 12 2017, 15:07:14) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import matplotlib.pyplot as plt

I'll add to my bashrc for now, but maybe this should be fixed some other way that doesn't rely on this user intervention. Not sure what that would be. Thanks.

jakirkham commented 7 years ago

Nice! Glad to that fixed it for you.

Hmm...yeah I'm not sure the right way to fix that.

We could easily add an activate script that sets this environment variable. However the question is do these modules show up reliably in the same place across distros.

I suppose we could also include our own directory like that in our package. Not sure how much else we would need to do (e.g. other packages/libraries required, connecting with the system copy, etc.).

Thoughts on either of these or other solutions?

moorepants commented 7 years ago

Setting the variable to work on all distros could be a pain.

I suppose we could also include our own directory like that in our package. Not sure how much else we would need to do (e.g. other packages/libraries required, connecting with the system copy, etc.).

Seems like a good idea. Is this just an empty directory?

jakirkham commented 7 years ago

That was my thinking too.

Unfortunately no. So would have to figure out where all this stuff comes from. Not sure if it is GLIB itself or other things. We will need to do some research.

For anyone that wants to look further. Here is what I see in my GIO modules.

$ ls -1 /usr/lib/x86_64-linux-gnu/gio/modules/
giomodule.cache
libdconfsettings.so
libgiognomeproxy.so
libgiognutls.so
libgiolibproxy.so
libgioremote-volume-monitor.so
libgvfsdbus.so
jakirkham commented 7 years ago

So it looks like a gio/modules directory is created, but it is empty. So it is not kept by conda-build. ( https://github.com/conda/conda-build/issues/1014 ) Also it appears that everything in it comes from other packages that rely on GLib. Am a little wary of creating our own lest we mess up the system copy and/or miss relevant modules that users want.

jakirkham commented 7 years ago

Maybe we can print a brief message after install explaining what to do? At a bare minimum, it will make these steps clear until we have a better fix.

abramjos commented 6 years ago

hi, exporting GIO_EXTRA_MODULES works fine for matplotlib but it is kindof making assertion error and in displaying opencv(FFmpeg built in conda enviournment) I guess when reading images. I tried fixing a couple of times and thats my conclusion( Not sure !)

everestial commented 6 years ago

export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/ worked for me only on ipython. But, it's not fixing the issue with pycharm when pandas is used in the python program.

Any suggestion ?

jakirkham commented 6 years ago

Sorry, there's enough going on in PyCharm that it would be difficult for me to make a recommendation. Any chance I could convince you to follow up with them? Maybe you could even drop them a link to this issue so we can chat with some of their devs. ;)

jakirkham commented 6 years ago

@pkgw, have you seen this issue? Do you have any thoughts on how we might be able to improve this?

everestial commented 6 years ago

I can't solve the issue inside "pycharm" when my python program was called from "anaconda/conda bin". I tried several proposed solutions posted on "stackoverflow/exchange". Just wasted my half day and rebooted my computer several times.

As, a workaround I just had to call it from "usr/bin". But, getting outside anaconda/conda could also result in many dependecies error or incompabilities; luckily so far I don't have any problem. But, I hope this issue gets fixed soon.

If I have chance I will post/link this issue with "pycharm".

jakirkham commented 6 years ago

Sorry this is such a hurtle.

If you have any suggestions to improve this, @everestial would be open to hearing them. Including better documentation.

Getting PyCharm developers involved in this discussion is likely to improve the outcome for end users like yourself.

zhangqipeng99 commented 6 years ago

@jakirkham pls first export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/ in your bashrc ,then uninstall pycharm ,and re-install pycharm ,so it`s ok.

roachsinai commented 6 years ago

I was using screenfetch on conda envs, this warning happened. But if I don't use conda env, every thing is fine.

roachsinai commented 6 years ago

I found a solution: Gsettings not working (to change wallpaper)

I agree the idea anaconda hijacks the gsetting. And it works well.

Dark-Sied commented 6 years ago

I also get the same error in my anaconda and i tried above fix export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/ But when i closed the terminal and open it again the error appears again. Is there any fix to do it permanently.

moorepants commented 6 years ago

You can add the line to your .bashrc file (or whatever config file your terminal uses).

lss-len commented 5 years ago

The canvas style has changed,I don't know how to do.

aysunrhn commented 5 years ago

Has this issue been solved? This conflict is causing me problems when I'm using gnome shell extensions as well... I'm looking for a way around other than exporting GIO_EXTRA_MODULES, but nothing so far. It is only a small problem right now, but it might lead to more larger conflicts in the future so maybe it's best to uninstall Anaconda all together.

huangjiancong1 commented 4 years ago

export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/

add this export GIO_EXTRA_MODULES=/usr/lib/x86_64-linux-gnu/gio/modules/ in your .bashrc, everything will be ok.

scopatz commented 4 years ago

This should probably be in the activation script of this recipe

scopatz commented 4 years ago

Or something similar

segoldin commented 4 years ago

I have more information about this:

  1. It's probably not python related. I get the problem even though the only python activity on my system (per "ps ax") is firewalld and tuned

  2. On Centos7.5, the relevant path is "/usr/lib64/gio/modules"

tschoonj commented 4 years ago

I am currently doing some work on the Glib stack in conda-forge and may be able to offer some advice here regarding where these GIO modules are coming from:

AFAICT the glib-networking modules are currently not picked up by Linux and Windows, when they need to be loaded to get libsoup working, unless GIO_MODULE_DIR gets set explicitly.

I will open a PR later today to address this, by having this variable set when the conda environment gets activated.