我正在使用 Ubuntu 10.04,我刚刚从源代码安装了 Mercurial 1.5.4(参见问题由于我遇到了一些安装问题)。但是现在,当我调用:
hg
我得到以下信息:
File "/usr/local/bin/hg", line 27, in <module>
mercurial.dispatch.run()
...
File "/usr/lib/pymodules/python2.6/mercurial/demandimport.py", line 47, in _load
mod = _origimport(head, globals, locals)
ImportError: No module named osutil
然而
find /usr/local/lib -name osutil* -print
返回
/usr/local/lib/python2.6/dist-packages/mercurial/osutil.so
我认为可以通过类似于 Perl 和 XS 的 Python 脚本加载它。除了添加(请参阅上面链接中的答案)之外,我的 Python 安装与从 9.10 升级到 10.04 后 Ubuntu 10.04 的python-dev
安装完全相同。
这是怎么回事?
答案1
这通常意味着您需要mercurial-common
从 Ubuntu 中卸载该软件包——它可能位于 Python 搜索路径的较早位置,并导致类似这样的奇怪问题。
答案2
每http://mercurial.808500.n3.nabble.com/Mercurial-1-5-2-released-td806821.html,你需要 python-dev 包。例如,在 Debian 或 Ubuntu 上,你可以使用以下命令安装它
sudo apt-get install python-dev
如果这不能立即起作用,那么重新执行 Mercurial 源安装,这可能会解决问题(对我来说确实如此)。
答案3
如果你在 Windows 下运行,你会在“\site-packages\mercurial\”内找到一个文件夹“pure”。里面有一堆 .py(osutil.py 是其中之一)
只需将“pure”内的所有文件复制到“mercurial”文件夹即可!它就开始工作了。
希望这可以帮助!
答案4
只是为了帮助别人,我刚刚解决了osutil.py
Ubuntu 13.04 中缺失的问题,没有它 mercurial 就无法运行。
我必须安装 python-sphinx (及相关内容)。这看起来像是 mercurial 包中的依赖项检查失败。