安装Meld遇到Python import socket: ImportError
来源:互联网 发布:js数组合并排序 编辑:程序博客网 时间:2024/06/12 20:21
1、sudo apt-get install meld
2、安装完毕后,设置~/.subversion/config中,diff-cmd = meld
使用svn diff的时候出现了
……
File "/usr/lib/python2.7/multiprocessing/connection.py", line 39, in
<module>
import socket
ImportError: /usr/bin/socket.so: undefined symbol: lua_gettop
import socket
ImportError: /usr/bin/socket.so: undefined symbol: lua_gettop
搜索后发现,是因为Python的模块加载问题,如果在其其搜索目录下存在socket.py/socket.so/socket.dll(或许只要是可执行的socket.*都会默认加载)
且此路径在python的安装路径之前,那么会先加载已经搜索到的socket文件,造成import socket错误。
(关于详细解释在http://blog.chinaunix.net/uid-20788636-id-4223417.html)
由于python会优先搜索执行文件的当前路径,然后搜索其安装路径,测试如下。
测试代码:
#!/usr/bin/env python
# coding=utf-8
import sys,pprint
pprint.pprint(sys.path)
# coding=utf-8
import sys,pprint
pprint.pprint(sys.path)
输出结果:
['/home/***/python/test',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-i386-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',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-i386-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',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
如果当前执行路径存在socket.*的可执行文件,就出现错误。
同理,当遇到其他importError的时候,也是这样的错误。
所以,在使用python编程的时候,python文件的命名要慎重,避免与python的固有module相同,造成不必要的麻烦。
最终这里解决meld可用的方式是,
将meld移到其他文件夹下,
配置diff-cmd的时候使用绝对路径。
即:diff-cmd = /usr/lib/meld/meld/meld
0 0
- 安装Meld遇到Python import socket: ImportError
- Python 文件命名陷阱:importError import socket
- 安装NLTK 遇到 ImportError :cannot import namecompat 解决办法
- python安装配置Theano ImportError:cannot import name 'configparser'
- Python ImportError: cannot import name *
- python 安装 遇到 ImportError: No module named _struct
- python程序安装nltk-安装完成后import报ImportError: No module named '_sqlite3'解决方案
- Python~ImportError:cannot import name BeautifulSoup
- python 错误: ImportError: cannot import name xxx
- python错误:ImportError: cannot import name Thing2Literal
- Python: ImportError: cannot import name __check_buil
- Python: ImportError: cannot import name 'BeautifulSoup'
- Python ImportError: cannot import name 'MongoClient'
- Python ImportError: cannot import name NUMPY_MKL
- 安装完mysql-python后import加载模块 ImportError: libmysqlclient_r.so.16
- 安装完mysql-python后import加载模块 ImportError: libmysqlclient_r.so.16
- python2.7.3安装完后,执行python时,出现import readline ImportError: No module named readline
- python安装gensim包报错,importError:can not import name utils解决方案
- 设置ExpandableListView右边的箭头
- mysql行锁和表锁
- 新系统安装的问题
- 利用 Java dump 进行 JVM 故障诊断 (转IBM官网)
- mySql学习笔记:比sql server书写要简单
- 安装Meld遇到Python import socket: ImportError
- 志当存高远,而唯有努力才能抵达成功彼岸
- mapreduce-执行步骤详解
- 归档 及 日志 路径
- mysql学习笔记:存储过程
- 1058. A+B in Hogwarts (20)
- 静 忍
- Android 之ExpandableListView几个特殊的属性
- OpenFire源码学习之十四:插件管理