rhythmbox 因“无法导入站点模块”而崩溃

rhythmbox 因“无法导入站点模块”而崩溃

几天前我将我的机器从 15.10 更新到了 16.04。

现在我必须面对这个奇怪的问题:rhythmbox告诉我,它无法导入站点模块并崩溃,因为python3.5缺少模块_sysconfigdata_m

我有一个来自 的源安装python3.5.1,但似乎发布升级删除了此安装。
python3.5.1文件位于 下/usr/lib/python3.5.1/

我已经尝试重新安装python3.5rhythmbox

完整的回溯:

me@my_machine:~$ rhythmbox
Failed to import the site module
Traceback (most recent call last):
  File "/usr/lib/python3.5/site.py", line 580, in <module>
   main()
 File "/usr/lib/python3.5/site.py", line 566, in main
   known_paths = addusersitepackages(known_paths)
 File "/usr/lib/python3.5/site.py", line 287, in addusersitepackages
   user_site = getusersitepackages()
 File "/usr/lib/python3.5/site.py", line 263, in getusersitepackages
   user_base = getuserbase() # this will also set USER_BASE
 File "/usr/lib/python3.5/site.py", line 253, in getuserbase
   USER_BASE = get_config_var('userbase')
 File "/usr/lib/python3.5/sysconfig.py", line 595, in get_config_var
   return get_config_vars().get(name)
 File "/usr/lib/python3.5/sysconfig.py", line 538, in get_config_vars
   _init_posix(_CONFIG_VARS)
 File "/usr/lib/python3.5/sysconfig.py", line 410, in _init_posix
   from _sysconfigdata import build_time_vars
 File "/usr/lib/python3.5/_sysconfigdata.py", line 6, in <module>
   from _sysconfigdata_m import *
ImportError: No module named '_sysconfigdata_m'

顺便提一句
好像 16.04 删除了python3.4(我的默认python3)并用 替换了它python3.2

链接/usr/bin/python3.2/usr/bin/python3只会导致其他python3程序(如 gnome-termial)崩溃。

其他论坛上说,出现这个错误,如果python2用而不是python3那么我就有点卡住了。

更新:我添加了一些调试输出/usr/lib/python3.5/_sysconfigdata.py

print(sys.version)

输出为

3.5.1 (default, Feb 10 2016, 15:13:13) 
[GCC 5.2.1 20151010]

但它应该是

3.5.1+ (default, Mar 30 2016, 22:46:26) 
[GCC 5.3.1 20160330]

我有python3我的机器上没有这样的安装!我已经搜索过了几次对于这样的安装。

编辑

我尝试python3通过运行完全重新安装

sudo apt autoremove --purge python3

不要在家尝试做这个!

这将删除几乎所有程序在你的机器上。我花了 6 小时才重建了我的基础系统!我只有 gnome-terminal留下来,因为它被加载到内存中。

但这并不能解决我的问题。

答案1

这不是一个解决方案,而是一个修复
我补充道

for p in sys.path:
    print(p)

/usr/lib/python3.5/_sysconfigdata.py。路径/usr/lib/python3.5/plat-x86_64-linux-gnu被替换为/usr/lib/python3.5/plat-gnu

修复它

我通过在文件中添加以下解决方法来修复此问题:

plat_path = "/usr/lib/python3.5/plat-x86_64-linux-gnu"
if(not plat_path in sys.path):
    sys.path.append(plat_path)

我还是不知道为什么会发生这种情况。

相关内容