Windowsで通常の自動ジャンプコマンドを実行すると、次のようになります。
Traceback (most recent call last):
File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\\autojump", line 320, in <module>
sys.exit(main(parse_arguments()))
File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\\autojump", line 314, in main
['.'])))
File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\autojump_utils.py", line 42, in first
return it.next()
File "C:\Program Files (x86)\CowShell\Vendor\AutoJump\bin\autojump_match.py", line 86, in <lambda>
flags=regex_flags,
File "F:\Programs\Python\lib\re.py", line 146, in search
return _compile(pattern, flags).search(string)
File "F:\Programs\Python\lib\re.py", line 251, in _compile
raise error, v # invalid expression
sre_constants.error: unexpected end of regular expression
ECHO is off.
ここで強調表示されている変更: https :
Windowsシステムの機能障害につながります。
提案された解決策は、基本的にautojump_match.pyの行78-80を次のように変更することです。
sep = '\\\\' if os.sep == '\\' else os.sep
regex_no_sep = '[^' + sep + ']*'
regex_no_sep_end = regex_no_sep + '$'
regex_one_sep = regex_no_sep + sep + regex_no_sep
(正規表現の構築で使用される区切り文字の値を条件付きで設定します)
詳細なバグレポートをありがとう!
残念ながら、私はWindowsマシンにアクセスできません。 これらのWindowsテストを更新して、発生したエラーを再現できますか? そうすれば、将来のリグレッションバグを防ぐことができます。
Win10でオートジャンプを試してみて、これをヒットしてください。 提案されたパッチは私にとってはうまくいくようです。
@wtingテストが実際にWindowsで実行されていない場合、match_consecutiveテストは間違ったos.sep
取得しませんか? os.sepがバックスラッシュでない限り、テストは実際には失敗しません。
あなたはそのようなテストのためにそれをモックアウトすることができます:
In [1]: import os, mock
In [2]: os.sep
Out[2]: '/'
In [3]: with mock.patch.object(os, 'sep', '\\'):
...: print(os.sep)
...:
\
同じ問題が発生し、提案された修正で問題が解決しました。 別の解決策は、appveyorなどのWindowsCIプラットフォームでテストを実行することだと思います。
同じ問題である1064に勝ちます。 autojump_match.pyの変更が機能しました。 ありがとうございます。
Window 10 Professional、私は今日この問題に遭遇しました....そして提案されたパッチは魅力のように機能します! どうもありがとう。 4年経ってもパッチがマスターにマージされないのはなぜだろうか。
最も参考になるコメント
Window 10 Professional、私は今日この問題に遭遇しました....そして提案されたパッチは魅力のように機能します! どうもありがとう。 4年経ってもパッチがマスターにマージされないのはなぜだろうか。