2016-05-15 15 views
2

こんにちは私のpythonのインストールは別のディレクトリにあり、Macベースのドッカー画像を使用しています。 user/local/bin/python3をシェルスクリプト内の他のフォルダから削除します。/usr/local/bin/python3:悪いインタプリタ:ubuntuのためのそのようなファイルやディレクトリがありません14.04

私の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'] 
>>> 

ので、私は、このエラーから抜け出すためにリダイレクトするかのpython3の私のインストールにリンクすることができシェバング行を変更せずに方法があります。

python3を所定のパスにインストールすることをお勧めします。 ?

お願いします。

答えて

1

ファイルのシバンを変更できず、ドッカーイメージを作成するDockerfileにアクセスできる場合は、コマンドディレクティブを追加してシンボリックリンク(ln -s /usr/bin/python3 /usr/local/bin/)を作成できます。 Dockerfileにアクセスできない場合。次に、実行中のドッカーインスタンス内から上記のコマンドを実行することができます。それはファイルを修正することなくあなたの問題を解決するはずです。

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

+0

CMD ["ln -s"、 "/ usr/bin/python3"、 "/ usr/local/bin /"]は動作しますか?私はCMD ["ln -s"、 "/ usr/bin/python3"、 "/ usr/local/bin/pyhon3"]と言う必要があることを意味します。私はLinuxシステムに新しいです –

+0

どちらの方法も問題なく動作するはずです。 'RUN/bin/bash -c 'ln -s $(which python3)/ usr/bin /'に置かれているかどうかわからない場合、python3が '/ usr/bin /'にあると仮定すると、ローカル/ bin/''このフォームが 'CMD'でも動作するかどうかはわかりません。 – xmonk

+0

別のオプションは、 'CMD'の代わりに' RUN'を使用することです。今、私はCMDが好まれた場所を思い出すことができます。しかし、 'CMD'か' RUN'のどちらかがうまくいくはずです。 – xmonk

0

いつものようにshebangを "/ usr/bin/env python"に設定して、適切なバージョンのpythonが実行可能ファイルのパスに収まるようにパスを適切に設定することができます。 bashのでは、使用してコマンドラインでパスを設定することができます。

PATH=python/path:$PATH app 

私は時々シェバングを無視して、実行しているのpythonインタプリタを制御するために、python/path/python $(which app)を入力します。

+0

はい、これはしかし、私の場合は、ドッキングウィンドウの画像を使用しています本当です。何らかの理由で私はそれを変更できない、または私の開発環境イメージのために私のドッカーイメージを変更したくない、それがそのままの状態でshebangを維持する方法はありますか? –

関連する問題