web-dev-qa-db-fra.com

/ usr/local/bin/python3: mauvais interpréteur: aucun fichier ni répertoire de ce type pour Ubuntu 14.04

Salut Mon installation de python est dans un répertoire différent et j'utilise une image de menu qui est basée sur Mac et fait référence à la ligne Shebang en tant que/utilisateur/local/bin/python3 depuis un autre dossier du script shell.

mon chemin d'installation 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']
>>> 

donc y a-t-il un moyen de changer la ligne Shebang, je peux rediriger ou créer un lien vers mon installation de python3 pour me sortir de cette erreur. 

est-il recommandé d'installer python3 dans un chemin donné. ?

s'il vous plaît des conseils. 

7
Karn_way

Si vous ne pouvez pas modifier le Shebang du fichier et que vous avez accès au fichier Docker qui crée votre image de menu fixe, vous pouvez ajouter une directive de commande pour créer un lien symbolique: ln -s /usr/bin/python3 /usr/local/bin/. Si vous n'avez pas accès à le Dockerfile. Ensuite, vous pouvez exécuter la commande ci-dessus à partir de l'instance de docker en cours d'exécution. Cela devrait résoudre votre problème sans avoir à modifier le fichier.

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

1
xmonk

Vous pouvez définir Shebang sur "/ usr/bin/env python" comme d'habitude, puis définir votre chemin correctement pour que la version correcte de python se trouve sur le chemin de votre exécutable. Dans bash, vous pouvez définir le chemin sur la ligne de commande en utilisant:

PATH=python/path:$PATH app

Je vais parfois ignorer Shebang et taper python/path/python $(which app) afin de contrôler quel interpréteur python est en cours d'exécution.

0
Neapolitan