2021年1月7日木曜日

repoがPython2系を切り捨て?

バージョン管理と言えば現状gitが幅を利かせており、
いくつかのgitレポジトリをまとめて利用するような用途にrepoをよく見かけます。
ただこのrepo、デプロイのためには便利なんでしょうが、
コードをいじるとなると簡便とは言い難いんですよね。

それはいいとして、先日repoを使おうとしたところ、
Traceback (most recent call last):
  File "<とあるディレクトリ>/.repo/repo/main.py", line 56, in 
    from subcmds.version import Version
  File "<とあるディレクトリ>/.repo/repo/subcmds/__init__.py", line 38, in 
    ['%s' % name])
  File "<とあるディレクトリ>/.repo/repo/subcmds/upload.py", line 27, in 
    from hooks import RepoHook
  File "<とあるディレクトリ>/.repo/repo/hooks.py", line 472
    file=sys.stderr)
        ^
SyntaxError: invalid syntax
みたいなエラーが。どうもPython2系を使っているのが原因っぽい。
その環境ではPython2.7を使っており、
現状サポートされる環境がPython2系からPython3系へ
移行しているというのは知ってはいたのですが、
いよいよ現実問題として私の眼前にも立ちはだかったわけです。
その環境には一応Python3.4も入ってはいるのですが、
デフォルトを3系にすると別のところでろくでもないことが
起こりそうで嫌なのです。

で、回避方法が何かないかなと探していて
Stackoverflowでピッタシの解決方法を見つけました。
$ curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo
$ chmod a+x ~/bin/repo
を実行してから個々のrepoコマンド実行時に
$ repo <オプション等>
としていた代わりに
$ python3 ~/bin/repo <オプション等>
とすればいいのです。。
これなら現環境を汚さずに対応できます。いや助かった。

0 件のコメント:

コメントを投稿