/usr / local/bin / python3: плохой интерпретатор: нет такого файла или каталога для ubuntu 14.04

Hi моя установка python находится в другом каталоге, и я использую образ docker, который основан на mac, и он ссылается на строку shebang как /user/local/bin/python3 из другой папки в скрипте оболочки .

мой путь установки python

Python 3.4.3 (default, Oct 14 2015, 20:28:29) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/home/myuser/project', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
>>> 

так есть способ без изменения строки shebang я могу перенаправить или ссылку на мою установку python3, чтобы выйти из этой ошибки.

рекомендуется ли устанавливать python3 по заданному пути. ?

пожалуйста, советом.

2 ответов


Если вы не можете изменить shebang файла, и у вас есть доступ к файлу Dockerfile, который создает образ docker, вы можете добавить директиву команды для создания символической ссылки:ln -s /usr/bin/python3 /usr/local/bin/. Если у вас нет доступа к Dockerfile. Затем вы можете запустить вышеуказанную команду из запущенного экземпляра docker. Это должно решить вашу проблему, не изменяя файл.

https://docs.docker.com/engine/reference/builder/#cmd


вы можете установить shebang в "/usr/bin / env python", как обычно, а затем установить свой путь соответствующим образом, чтобы правильная версия python была на пути к исполняемому файлу. В bash вы можете установить путь в командной строке, используя:

PATH=python/path:$PATH app

Я иногда буду игнорировать shebang и введите python/path/python $(which app) для управления тем, какой интерпретатор python работает.