CentOS 6.3 64/32bit 安装 tortoiseHg,运行thg没反应问题解决方法

本文详细介绍了在 CentOS 系统中安装并解决 TortoiseHg 打不开的问题,包括安装 PyQt、SIP 和 QScintilla 的步骤及遇到的错误解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题困扰了我很长时间,也让我重装了很多次CentOS系统,开始是64位,现在是32位,反正都没有正常打开过,而且我觉得只要用CentOS6.3系统的,装tortoiseHg肯定打不开。

安装方法很简单,这里不说了,不会的童鞋也可以参考此文:http://www.cnblogs.com/huangdingding/archive/2012/09/26/2703664.html

(值得注意的是Ubuntu下安装python-dev是sudo apt-get python-dev,而CentOS下则应该是sudo yum install python-devel)

安装很顺利,Mercurial hg 2.3和tortoisehg 2.5都成功安装。

然后在命令行下输入: thg 回车,没有反应?@#¥@!#¥@

什么反应都没有,我想问元芳,但是他不在,纠结了很久很久,现在空下来了,心不死,继续GOOGLE,看到了一条消息,说tortoisehg需要PyQt>4.7 qt>4.6

(谷歌搜索“TortoiseHg does not start on CentOS”,找到https://bitbucket.org/tortoisehg/thg/issue/1814/tortoisehg-does-not-start-on-centos-62

我就抱着试试的心态,装PyQt4.9,结果是可以的,虽然还有错误,但是界面是调出来了。以前有地方说需要python2.7,我就找到篇坑爹的文章,卸载了python2.6再装上python2.7结果,直接导致rpm、yum都不能用,搞了一个下午,可以说系统是没法玩了,害得我只能重装系统。

所以这次装的时候,装PyQt的时候长记性了,哈哈。我在虚拟机里的CentOS下搞,还做了快照。

下面代码自己慎重运行,因为我自己也没法保障你们运行了,会有什么后果,但是我这边是解决了一直运行thg没反应的问题,我建议你先看完全文再操作。

yum remove PyQt #卸载
yum remove qt #卸载,你没有装过就没事
vim /etc/yum.repos.d/CentOS-ATrpms.repo #这步是增加源

输入如下内容:

#ATrpms
[atrpms]
name= CentOS-$releasever - ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/testing
gpgcheck=1
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
enabled=1

接着,

rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms

安装依赖包:

yum -y install qt47 qt47-devel gcc gcc-c++

注意:这里安装qt47-devel的时候可能会有问题,报一个这个错误Error: qt47-x11 conflicts with qt-x11

意思是会与qt-x11冲突,yum remove qt-x11 卸载掉就可以了,这是我第二遍装的时候发现的问题

 

安装SIP(安装PyQt时需要):

wget  http://pkgs.fedoraproject.org/repo/pkgs/sip/sip-4.13.1.tar.gz/3f61fd39d5b0c8fa9e43b59af04de924/sip-4.13.1.tar.gz
cd sip-4.13.1
python configure.py 
make && make install

安装PyQt:

wget http://pkgs.fedoraproject.org/repo/pkgs/PyQt4/PyQt-x11-gpl-4.9.tar.gz/61619500d09d87b6c2a25bd3ea994504/PyQt-x11-gpl-4.9.tar.gz
tar zxvf PyQt-x11-gpl-4.9.tar.gz
cd PyQt-x11-gpl-4.9
python configure.py -q /usr/lib/qt47/bin/qmake-qt47
//如果系统是64位则
//python configure.py -q /usr/lib64/qt47/bin/qmake-qt47
make && make install
//这里时间可能有点长,我大致make了十几分钟吧

这样安装好了后,你在运行thg,就会发现有界面了,但是还是报错了。

看到最下面

有一个No module named Qsci的错误,

{{{
#!python
** Mercurial version (2.3.1).  TortoiseHg version (2.5)
** Command: 
** CWD: /home/huangdd/下载
** Encoding: UTF-8
** Extensions loaded: 
** Python version: 2.6.6 (r266:84292, Sep 11 2012, 08:28:27) [GCC 4.4.6 20120305 (Red Hat 4.4.6-4)]
** Qt-4.7.2 PyQt-4.9
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/tortoisehg/hgqt/run.py", line 56, in dispatch
    return _runcatch(u, args)
  File "/usr/lib/python2.6/site-packages/tortoisehg/hgqt/run.py", line 247, in _runcatch
    return runcommand(ui, args)
  File "/usr/lib/python2.6/site-packages/tortoisehg/hgqt/run.py", line 323, in runcommand
    return _runcommand(lui, options, cmd, d)
  File "/usr/lib/python2.6/site-packages/tortoisehg/hgqt/run.py", line 374, in _runcommand
    return checkargs()
  File "/usr/lib/python2.6/site-packages/tortoisehg/hgqt/run.py", line 328, in checkargs
    return cmdfunc()
  File "/usr/lib/python2.6/site-packages/tortoisehg/hgqt/run.py", line 322, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/python2.6/site-packages/mercurial/util.py", line 471, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/tortoisehg/hgqt/run.py", line 757, in log
    from tortoisehg.hgqt.workbench import run
  File "/usr/lib/python2.6/site-packages/mercurial/demandimport.py", line 95, in _demandimport
    return _import(name, globals, locals, fromlist, level)
  File "/usr/lib/python2.6/site-packages/tortoisehg/hgqt/workbench.py", line 20, in <module>
    from tortoisehg.hgqt.repowidget import RepoWidget
  File "/usr/lib/python2.6/site-packages/mercurial/demandimport.py", line 114, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/usr/lib/python2.6/site-packages/tortoisehg/hgqt/repowidget.py", line 28, in <module>
    from tortoisehg.hgqt.revdetails import RevDetailsWidget
  File "/usr/lib/python2.6/site-packages/mercurial/demandimport.py", line 114, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/usr/lib/python2.6/site-packages/tortoisehg/hgqt/revdetails.py", line 12, in <module>
    from tortoisehg.hgqt.fileview import HgFileView
  File "/usr/lib/python2.6/site-packages/mercurial/demandimport.py", line 114, in _demandimport
    mod = _origimport(name, globals, locals)
  File "/usr/lib/python2.6/site-packages/tortoisehg/hgqt/fileview.py", line 23, in <module>
    qsci = Qsci.QsciScintilla
  File "/usr/lib/python2.6/site-packages/mercurial/demandimport.py", line 86, in __getattribute__
    self._load()
  File "/usr/lib/python2.6/site-packages/mercurial/demandimport.py", line 58, in _load
    mod = _origimport(head, globals, locals)
ImportError: No module named Qsci

}}}

 

有什么错误就Google下吧,总比之前运行了thg什么反应都没有,有问题无从下手的好。

接下来的问题待解决,所以希望童鞋们看完此文后再亲身测试,我这边没有写完,如果一边做一边看,到最后。。。问题还没有解决就来怪我了,^_^

=========================
11.20 16:45 已解决No module named Qsci问题,输入thg,成功打开。

解决思路源于此问题:http://stackoverflow.com/questions/6046432/pyqt4-cant-import-qsci

下面是解决方法:

进入http://www.riverbankcomputing.co.uk/software/qscintilla/download 下载 QScintilla2

安装方法参考http://www.riverbankcomputing.co.uk/static/Docs/QScintilla2/index.html

具体命令:

wget http://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.6.2/QScintilla-gpl-2.6.2.tar.gz
tar zxvf QScintilla-gpl-2.6.2.tar.gz
cd QScintilla-gpl-2.6.2/
cd Qt4Qt5/
#我这边是发现没有qmake命令,bash: qmake: command not found
#cp /usr/lib/qt47/bin/qmake /usr/bin/
#如果你也没有那就执行上面那命令
qmake qscintilla.pro
make && make install
cd ../Python/
python configure.py  #绑定python
make && make install

之后执行thg就能成功运行了。

不过我在安装QScintilla-gpl-2.6.2.tar.gz前还使用命令:yum install qscintilla 安装过一遍,但是当时没有用。如果还有问题的童鞋也不妨yum install qscintilla尝试下。

问题解决了,^_^

转载于:https://www.cnblogs.com/huangdingding/archive/2012/11/20/2779213.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值