改行コードの関係で Windows 環境で編集したファイルが linux 環境で動作しない
Windows で Visual Studio Code を用いてファイルを編集していた際に詰まったことがあったので覚え書き.
環境
- Windows 10 Home
- Visual Studio Code March (version 1.99)
問題が生じた状況
Windows 環境の VSCode で wsl2 上のファイルを編集していた際に, python3 用の shebang を以下のように作成した.
#!/usr/bin/env python3
実行時に以下のエラーが発生.
/usr/bin/env: ‘python3 \r’: No such file or directory
原因
Windows はデフォルトで改行コードに CRLF (\r\n
) を使用するが, linux 系では基本的に LF (\n
) を使用する.
そのため, CRLF を shebang に用いると CR 部分のコードが残ってしまい, 名前の不一致エラーが生じる.
対処法
- VSCode のエディター上で Shift+Ctrl+P
- "Change End of Line Sequence" を検索し, 改行コードを CRLF から LF に変更