Bashファイルの完成でPython仮想環境を作成する

Bashファイルの完成でPython仮想環境を作成する

時々、bashシェルでタブ補完を使用すると、タブ補完が表示され、現在のディレクトリにPython仮想環境を作成する前に1〜2秒間一時停止します。

たとえば、という名前の単一のファイルを含むディレクトリでコマンドを実行し、タブを完成させてexample.pdfコマンドを完了したい場合:

$ ls
example.pdf
$ pdf2txt example<tab>
$ pdf2txt example.pdf
This file has text.
$ ls
bin example.pdf lib lib64 include pyvenv.cfg

その結果、これらのファイルをすべて削除するか、私のディレクトリが不思議なPython仮想環境でいっぱいになることを受け入れる必要があります。私のホームディレクトリでは、bashタブの完成によって生成されたpython venvのみを使用しているので、bash~/binスクリプトと任意のpythonスクリプトが混在しています。

残念ながら、この問題を確実に再現することはできませんが、より複雑なファイル(pdf、docxなど)がある場合に発生するようです。

問題の性質上、ウェブ検索では問題を解決できません。これは、すべての結果がPythonスクリプトの作成時のタブ補完の実装に関するものであるためです。

システムメッセージ:

OS:     Fedora 36 (though problem started around F34)
Kernel: 5.17.13-300.fc36.x86_64

Pythonファイルの有限再帰リスト(venvファイルは毎回同じであると仮定します):

$ find . -maxdepth 2
./bin
./bin/python3
./bin/python
./bin/python3.10
./bin/pip
./bin/pip3
./bin/pip3.10
./bin/Activate.ps1
./bin/activate
./bin/activate.csh
./bin/activate.fish
./include
./lib
./lib/python3.10
./pyvenv.cfg

完全なファイルリスト:

tree ここ

ls -R ここ

関連文書bash_completion:

/etc/profile.d/bash_completion かなり普通に見えます。

~/.config/bash_completion存在しない

/usr/share/bash-completion/bash_completionPastebinによって拒否されましたが、ヘッダーに最新バージョンがオンになっていることが表示されます。 フラッグハブ

関連情報