Ubuntu – I can’t open software updater and unity tweak tool on Ubuntu14.04

dbuspythonpython-2.7update-manager

I have a notification nearly every time I try to update. That note 'An error occurred while checking for updates => [TR Language] Güncellemeler denetlenirken bir sorun oluştu.'

I can't open software updater, languages, Unity tweak tool.

$ sudo unity-tweak-tool
Traceback (most recent call last):
  File "/usr/bin/unity-tweak-tool", line 33, in <module>
    import UnityTweakTool
  File "/usr/lib/python3/dist-packages/UnityTweakTool/__init__.py", line 39, in <module>
    import dbus, dbus.service
  File "/usr/lib/python2.7/dist-packages/dbus/__init__.py", line 82, in <module>
    import dbus.types as types
  File "/usr/lib/python2.7/dist-packages/dbus/types.py", line 6, in <module>
    from _dbus_bindings import (
ImportError: /usr/lib/python2.7/dist-packages/_dbus_bindings.so: undefined symbol: _Py_ZeroStruct
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 20, in <module>
    import apt
  File "/usr/lib/python2.7/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ImportError: /usr/lib/python2.7/dist-packages/apt_pkg.so: undefined symbol: _Py_ZeroStruct

Original exception was:
Traceback (most recent call last):
  File "/usr/bin/unity-tweak-tool", line 33, in <module>
    import UnityTweakTool
  File "/usr/lib/python3/dist-packages/UnityTweakTool/__init__.py", line 39, in <module>
    import dbus, dbus.service
  File "/usr/lib/python2.7/dist-packages/dbus/__init__.py", line 82, in <module>
    import dbus.types as types
  File "/usr/lib/python2.7/dist-packages/dbus/types.py", line 6, in <module>
    from _dbus_bindings import (
ImportError: /usr/lib/python2.7/dist-packages/_dbus_bindings.so: undefined symbol: _Py_ZeroStruct

The following description is suggestions

Print import sys and sys.path

$ python
>> import sys
>> sys.path
''
['', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']

which python and python --version:

~$ which python
/usr/bin/python

~$ python --version
Python 2.7.6

Best Answer

If you look at the top of the backtrace you will notice that UnityTweakTool is a Python 3 library. However your PYTHONPATH contains a lot of directories referring to your Python 2 installation. The problematic one is /usr/lib/python2.7/dist-packages, which causes the incompatible Python 2 version of the apt package to be picked up.

Try unsetting your PYTHONPATH or run as

sudo PYTHONPATH= unity-tweak-tool
Related Question