Version 0.9.0 fails to start
unode opened this issue · comments
Hi @vagnum08
When launching version 0.9.0 built from git (tag v0.9.0), I get:
% cpupower-gui
Traceback (most recent call last):
File "/nix/store/96l1iirm7i91211a3c3xl2ysam3y83b8-cpupower-gui-0.9.0/bin/.cpupower-gui-wrapped", line 126, in <module>
conf = CpuPowerConfig()
File "/nix/store/96l1iirm7i91211a3c3xl2ysam3y83b8-cpupower-gui-0.9.0/share/cpupower-gui/cpupower_gui/config.py", line 45, in __init__
self._read_profiles()
File "/nix/store/96l1iirm7i91211a3c3xl2ysam3y83b8-cpupower-gui-0.9.0/share/cpupower-gui/cpupower_gui/config.py", line 69, in _read_profiles
files = self.user_conf.glob("*.profile")
AttributeError: 'NoneType' object has no attribute 'glob'
running with Python 3.7.
I didn't do anything other than installing 0.9.0 and launching it. 0.8.0 still runs fine.
Setup (please complete the following information):
- Distro: NixOS
- Package version: 0.9.0
- Installed via: source
Hi @unode, this one should be trivial to fix.
There is a temporary fix from your side while I am fixing it in master.
I assume you haven't added the pyxdg
as a dependency and is not installed.
If xdg
is missing XGD_PATH and user_conf are None
.
cpupower-gui/cpupower_gui/config.py
Line 13 in f323899
You can add xdg
for now as a required dependency instead of a suggested one.
In the meantime I will add a check so it doesn't fail if is not set.
Give it a try and let me know
Added pyxdg
but get a different error:
Traceback (most recent call last):
File "/nix/store/f351fqb3g8cnns701vrs7rsrmbj0ysg2-cpupower-gui-0.9.1/bin/.cpupower-gui-wrapped", line 192, in <module>
from cpupower_gui import main
File "/nix/store/f351fqb3g8cnns701vrs7rsrmbj0ysg2-cpupower-gui-0.9.1/share/cpupower-gui/cpupower_gui/main.py", line 32, in <module>
gi.require_version("AppIndicator3", "0.1")
File "/nix/store/74m737h8prjz7ry61xr30ngqcgr1w84g-python3.7-pygobject-3.34.0/lib/python3.7/site-packages/gi/__init__.py", line 129, in require_version
raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace AppIndicator3 not available
Before I had a file ~/.config/cpupower_gui/99-allcpus.conf
with the contents discussed in #24 and got a different exception.
The error on this one was clear and adding a line [GUI]
solved it:
Traceback (most recent call last):
File "/nix/store/f351fqb3g8cnns701vrs7rsrmbj0ysg2-cpupower-gui-0.9.1/bin/.cpupower-gui-wrapped", line 126, in <module>
conf = CpuPowerConfig()
File "/nix/store/f351fqb3g8cnns701vrs7rsrmbj0ysg2-cpupower-gui-0.9.1/share/cpupower-gui/cpupower_gui/config.py", line 44, in __init__
self._read_configuration()
File "/nix/store/f351fqb3g8cnns701vrs7rsrmbj0ysg2-cpupower-gui-0.9.1/share/cpupower-gui/cpupower_gui/config.py", line 65, in _read_configuration
self.config.read(conf_files)
File "/nix/store/r94aa2gj4drkhfvkm2p4ab6cblb6kxlq-python3-3.7.6/lib/python3.7/configparser.py", line 696, in read
self._read(fp, filename)
File "/nix/store/r94aa2gj4drkhfvkm2p4ab6cblb6kxlq-python3-3.7.6/lib/python3.7/configparser.py", line 1079, in _read
raise MissingSectionHeaderError(fpname, lineno, line)
configparser.MissingSectionHeaderError: File contains no section headers.
file: PosixPath('/home/u/.config/cpupower_gui/99-allcpus.conf'), line: 1
'allcpus_default=True\n'
Hunting down libappindicator
to see if it helps.
Appindicator is currently required.
I had a quick test, it worked as expected.
Could you try installing commit 42c8835 and see if it works.
I also noticed that I wasn't reading any profile files from /ect/cpupower_gui.d/
.
I fixed that too.
Offtopic:
As for the 99-allcpus-default.conf, yes the sections are required.
The main config file(cpupower_gui.conf) will always have all the options available so users can copy a subset for their overrides.
For the digits, apparently it depends on theming. I had the same issue initially.
However, I added some space. I will have a look.
42c8835 works here too, with and without pyxdg
.
About the appindicator, I had a simple except clause and now added ImportError
however gi.require_version raises ValueError
.
So appindicator would be optional.