執行 Docker 的 Python 程式,卻遇到錯誤訊息「/usr/bin/env: ‘python3\r’: No such file or directory」。解決方式是將修改 Python 程式碼的換行符號從 Windows 的 CRLF 改為 UNIX 的 LF。
Python icon by Icons8 |
問題狀況
在 Windows 作業系統執行包在 Docker 容器內的 Python 應用程式,卻遇到錯誤訊息
$ docker run -it cloudscraper https://www.google.com
/usr/bin/env: ‘python3\r’: No such file or directory
解決方式
網路論壇文章 command line - /usr/bin/env: 'python3 ': No such file or directory error is throwing in Windows - Stack Overflow 提到這不是 Python 程式碼問題,而是檔案編碼問題。發生錯誤的 Python 檔案使用 Windows 換行符號 CRLF ,需要改成 UNIX 換行符號 LF。
以下說明,怎樣使用 VSCodium (開放原始碼版本的 VSCode) 程式碼編輯軟體修改換行符號:
1. 下載與安裝 VSCodium
2. 打開 Dockerfile 檔案,知道 ENTRYPOINT 是 scraper.py 檔案
ENTRYPOINT ["/scraper.py"]
3. 使用 VSCodium 程式碼編輯軟體打開 scraper.py 檔案
4. VSCodium 右下角顯示檔案的換行符號是 CRLF
6. 右下角顯示目前的換行符號 LF
7. 儲存檔案後,需要重新產生 Docker image 才能生效。
留言
張貼留言