シェルでPythonを入力するときに使用されるコマンドを制御する方法

シェルでPythonを入力するときに使用されるコマンドを制御する方法

私は仮想環境を扱う方法としてアナコンダを使用します。これは、複数のバージョンのPythonがインストールされていることを意味します。シェルでPythonを実行すると、間違ったPythonバージョンが起動する状況が発生します。

走る

Which python
/anaconda3/envs/dash-two/bin/python
type -a python
 python is /anaconda3/envs/dash-two/bin/python
 python is /usr/bin/python

これに触発されて郵便はがきhash -t pythonを試して、エイリアスの出力を見ました。

答え1

仮想環境を使用したいのですが、まだ有効にしていません。これを行うには(デフォルトのvenvエントリがインストールされていると仮定 - python3でよりうまく動作します)

$ mkdir pytry
$ python3 -m virtualenv pytry

pytry.cdと入力すると、次pytryの内容が表示されます。

$ ls
bin  include  lib  local  share
$ 

今走る

source bin/activate

仮想環境ディレクトリで上記の実行を参照してください(私たちの場合pytry)。

$これで、プロンプトを(たとえば)から変更する必要があることがわかります。(pytry) $

which pythonPython実行可能ファイルが表示されます。

別の実行ファイルが必要な場合は、venvを作成するときに代わりに実行する必要があります。

python3 -m virtualenv pytry

する

python3 -m virtualenv -p other_python_executable pytry

通常、ヘルプが表示されます。

$ python3 -m virtualenv -h

答え2

これは「PATH」環境変数で制御されます。

PATHは、入力したコマンドに対して検索されるディレクトリのリストです。コロンで区切られた単一の文字列です。たとえば、PATHが次のように設定されているため、ホームディレクトリ()に入れたすべての項目は/home/philip/bin使用されますが、その中の項目は使用されません。/usr/bin/

echo $PATH
/home/philip/bin:/usr/local/bin:/usr/bin:/bin:/usr/games

パスを一時的に変更するには、「エクスポート」を使用して設定できます。たとえば、

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/home/philip/bin

この機能を永久に設定するには、プロファイルで設定する必要があります。上記と同様の行(パスが並べ替えられている)をというホームディレクトリに配置します.profile。存在しない場合は、その行を作成して追加するだけです。

答え3

AnacondaがPATHを踏んでいるようです(つまり、デフォルトのシステムインタプリタパスの前に独自のPythonインタプリタパスを置くこと)。この問題を解決する方法はいくつかあります。

  1. 正しいバージョンのPythonを使用してAnacondaインスタンスを作成します。

    conda create -n myenv python=3.4
    
  2. anacondaインスタンスをロードした後、PATH環境変数を上書きします。

    export PATH=/usr/bin:$PATH
    
  3. または、スクリプトファイルの最初の行にデフォルトパスを入力し、ファイルを実行可能にしてからシェルスクリプトとして実行します。スクリプトの最初の行は次のとおりです。

    #!/usr/bin/python
    

    "chmod"コマンドを使用してファイルを実行可能にすることができます。

    > chmod 700 file.py
    

    次に、コマンドラインから実行します。

    > file.py
    

関連情報