【发布时间】:2016-05-18 09:39:08
【问题描述】:
我正在尝试使用 hg-fast-export 和适用于 Windows 的 Github Bash 将 Mercurial 存储库导出到 GitHub。它在from mercurial import node 线上卡住了,因为 mercurial 不支持 Python 3。
我安装了 Python 2.7 并尝试了 shebang 行 (#! /Python27/python) 和 alias python='c:/Python27/python'。这有助于使 python --version 报告 2.7,但 hg-fast-export.sh 仍然调用 Python 3,因为它包含该行
PYTHON=${PYTHON:-python}
计算结果为 Python 3.4.3。
您能否解释一下如何更改它以使用不同的 Python 版本以及这里的语法是怎么回事?我真的无法在 shell 中搜索 ${} 或 :- 的含义。关于我的方法在 Windows 上运行它的可能性有多大的评论也可能会有所帮助。
编辑:感谢:-的解释。由于不需要参数扩展,我想我的问题的答案是“您必须在与脚本相同的行中设置 PYTHON='c:/Python27/python' 才能使用该值。”我希望它像 PATH 一样,您可以在其中独立设置它以供以下行使用。
【问题讨论】:
-
Usage of :- in bash的可能重复
-
@arco444,就目前而言确实如此,但我不确定它是否针对不熟悉环境变量用法的人解决了“如何更改”。
-
旁白:我会在
/usr/local/bin或PATH 中的另一个位置创建一个符号链接,名为python2;一旦你测试它可以工作,你就可以运行PYTHON=python2 hg-fast-export ...,而不必担心Windows路径、msys路径、cygwin路径等之间的差异。