解決 docker-compose up -d 遇到 python3.4: bad interpreter: No such file or directory 錯誤

docker-compose 是設定與啟動多個容器的 docker 應用程式工具。使用 docker-compose up -d 啟動 container 服務時,遇到「/usr/bin/python3.4: bad interpreter: No such file or directory」錯誤訊息。重新安裝  docker-compose 即可解決。

Docker icon by Icons8

錯誤狀況

在包含 Dockerfile 與 docker-compose.yml 檔案的目錄下,使用命令提示字元輸入指令

$ docker-compose up -d

遇到錯誤訊息

-bash: /usr/bin/docker-compose: /usr/bin/python3.4: bad interpreter: No such file or directory

瞭解問題狀況

檢查 python3.4 是否存在

$ ls /usr/bin/python3.4

確認 python3.4 並未存在

ls: cannot access /usr/bin/python3.4: No such file or directory

作業系統實際存在的 python 版本是 python3.7

$ which python3

/usr/bin/python3

$ /usr/bin/python3 -V

Python 3.7.9

突然奇想,既然 /usr/bin/python3.4 那就幫忙它建立「符號連結」(軟連結、Symbolic link)連到 python3.7.9 捷徑。輸入指令
$ ln -s /usr/bin/python3 /usr/bin/python3.4 
$  /usr/bin/python3.4  -V
Python 3.7.9
再次輸入 docker-compose 指令

$ docker-compose up -d

Traceback (most recent call last):

  File "/usr/bin/docker-compose", line 7, in <module>

    from compose.cli.main import main

ModuleNotFoundError: No module named 'compose'

問題尚未解決,刪除「符號連結」的捷徑,還原原本的環境

$ rm /usr/bin/python3.4 


解決方式

網路文章提到需要重新安裝 docker,決定先只重安裝 docker-compose,依照官方文件的安裝說明

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

$ sudo chmod +x /usr/local/bin/docker-compose

指令加上版本選項 --version 確認結果回傳版本號,代表完成安裝 docker-compose

$ /usr/local/bin/docker-compose --version

docker-compose version 1.29.2, build 5becea4c

$ docker-compose --version

docker-compose version 1.29.2, build 5becea4c

輸入啟動 container 服務指令

$ /usr/local/bin/docker-compose up -d

$ docker-compose up -d

沒有出現錯誤狀況。


後來又遇到相同錯誤

$ /usr/bin/docker-compose --version

-bash: /usr/bin/docker-compose: /usr/bin/python3.4: bad interpreter: No such file or directory

重新安裝 docker-compose,再重新建立符號連結即可 

$ sudo rm /usr/bin/docker-compose

$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

$ docker-compose --version

docker-compose version 1.29.2, build 5becea4c


版本資訊

  • CentOS Linux release 7.9.2009 (Core)
  • Docker version 20.10.13, build a224086
  • Python 3.7.9

參考資料


留言