質問編集履歴

9 追記

退会済みユーザー

退会済みユーザー

2019/06/07 11:26  投稿

pyenv によるバージョン管理の仕方
python 自体はほとんどかいたことがない初心者です
AWS ラムダでサポートしてる最新の 3.7 を使うために
pyenv というのを使ってもともとあった python とは別の 3.7.0 をインストールしてみたのですが
global も local でバージョンが 3.7.0 の状態で aws コマンドを打つと
```bash
> aws
pyenv: aws: command not found
The `aws' command exists in these Python versions:
 3.5.0/envs/aws
 aws
```
となります
3.7.0 をインストールした直後なのでコマンドがないのはバージョン管理が動いてる証拠でわかるのですが
この状態で pip install awscli して
`
Requirement already satisfied: awscli in $HOME/.local/lib/python3.7/site-packages (1.16.172)
`
にインストールは成功したみたいで
.local/bin/aws を叩くと動くのですが
この状態で aws コマンドをたたいてみたんですがやはり
.pyenv/shims/aws という場所をみにいってしまい同じエラーが出ます
コマンド自体はあるのにないというエラーが出る理由も謎なのですが
この .pyenv/shims というパスは何のためのパスなのでしょうか
pyenv の設定でいろんなブログで
```
export PYENV_ROOT="$HOME/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
 export PATH="$PATH:$HOME/.pyenv/bin"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"
fi
```
こういうのを .bashrc にかけといってるんですがこれのせいで
.pyenv/shims/bin というパスが最優先で追加されてみにいってしまいます
これでは pyenv で切り替えても古いコマンドをみにいってしまって意味がないように思うのですが
使い方が間違っているのでしょうか
.pyenv/shims/aws というのを消せば普通に動きそうな気はしますが
何か理由があって存在してるものを消すとあとあと困りそうなので
3.7 の状態でインストールされたコマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
3.7 の状態でインストールされたコマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
### 追記:
.bash_history を確認しましたが python のインストールは
```
pyenv install 3.7.0
```
で行いました
いまこういう状態です
```
pyenv versions
 system
 3.5.0
 3.5.0/envs/aws
* 3.7.0 (set by [カレントディレクトリ]/.python-version)
 anaconda3-5.2.0
 aws
> pyenv local
3.7.0
> pyenv global
3.7.0
> pyenv --version
pyenv 1.2.7
> pip --version
pip 19.1.1 from $HOME/.pyenv/versions/3.7.0/lib/python3.7/site-packages/pip (python 3.7)
```
aws とついてる 2 つは明示的にインストールした覚えがないのですが…
このあたりが何かおかしいのでしょうか…
OS は Mac OS 10.13.6 です
  • Python

    36093 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • pip

    828 questions

    pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

8 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/06/07 11:13  投稿

pyenv によるバージョン管理の仕方
python 自体はほとんどかいたことがない初心者です
AWS ラムダでサポートしてる最新の 3.7 を使うために
pyenv というのを使ってもともとあった python とは別の 3.7.0 をインストールしてみたのですが
global も local でバージョンが 3.7.0 の状態で aws コマンドを打つと
```bash
> aws
pyenv: aws: command not found
The `aws' command exists in these Python versions:
 3.5.0/envs/aws
 aws
```
となります
3.7.0 をインストールした直後なのでコマンドがないのはバージョン管理が動いてる証拠でわかるのですが
この状態で pip install awscli して
`
Requirement already satisfied: awscli in $HOME/.local/lib/python3.7/site-packages (1.16.172)
`
にインストールは成功したみたいで
.local/bin/aws を叩くと動くのですが
この状態で aws コマンドをたたいてみたんですがやはり
.pyenv/shims/aws という場所をみにいってしまい同じエラーが出ます
コマンド自体はあるのにないというエラーが出る理由も謎なのですが
この .pyenv/shims というパスは何のためのパスなのでしょうか
pyenv の設定でいろんなブログで
```
export PYENV_ROOT="$HOME/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
 export PATH="$PATH:$HOME/.pyenv/bin"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"
fi
```
こういうのを .bashrc にかけといってるんですがこれのせいで
.pyenv/shims/bin というパスが最優先で追加されてみにいってしまいます
これでは pyenv で切り替えても古いコマンドをみにいってしまって意味がないように思うのですが
使い方が間違っているのでしょうか
.pyenv/shims/aws というのを消せば普通に動きそうな気はしますが  
何か理由があって存在してるものを消すとあとあと困りそうなので  
3.7 の状態でインストールされたコマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
  • Python

    36093 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • pip

    828 questions

    pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

7 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/06/07 11:11  投稿

pyenv によるバージョン管理の仕方
python 自体はほとんどかいたことがない初心者です
AWS ラムダでサポートしてる最新の 3.7 を使うために
pyenv というのを使ってもともとあった python とは別の 3.7.0 をインストールしてみたのですが
global も local でバージョンが 3.7.0 の状態で aws コマンドを打つと
```bash
> aws
pyenv: aws: command not found
The `aws' command exists in these Python versions:
 3.5.0/envs/aws
 aws
```
となります
この状態で pip install awscli して
`
Requirement already satisfied: awscli in $HOME/.local/lib/python3.7/site-packages (1.16.172)
`
にインストールは成功したみたいで
.local/bin/aws を叩くと動くのですが
この状態で aws コマンドをたたいてみたんですがやはり
.pyenv/shims/aws という場所をみにいってしまい同じエラーが出ます
 
コマンド自体はあるのにないというエラーが出る理由も謎なのですが  
この .pyenv/shims というパスは何のためのパスなのでしょうか  
pyenv の設定でいろんなブログで
```
export PYENV_ROOT="$HOME/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
 export PATH="$PATH:$HOME/.pyenv/bin"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"
fi
```
こういうのを .bashrc にかけといってるんですがこれのせいで
.pyenv/shims/bin というパスが最優先で追加されてみにいってしまいます
これでは pyenv で切り替えても古いコマンドをみにいってしまって意味がないように思うのですが
使い方が間違っているのでしょうか
3.7 の状態でインストールされたコマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
  • Python

    36093 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • pip

    828 questions

    pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

6 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/06/07 11:07  投稿

pyenv によるバージョン管理の仕方
python 自体はほとんどかいたことがない初心者です
AWS ラムダでサポートしてる最新の 3.7 を使うために
pyenv というのを使ってもともとあった python とは別の 3.7.0 をインストールしてみたのですが
global も local でバージョンが 3.7.0 の状態で aws コマンドを打つと
```bash
> aws
pyenv: aws: command not found
The `aws' command exists in these Python versions:
 3.5.0/envs/aws
 aws
```
となります
3.7.0 をインストールした直後なのでコマンドがないのはわかるのですが
この状態で pip install awscli して
`
Requirement already satisfied: awscli in $HOME/.local/lib/python3.7/site-packages (1.16.172)
`
にインストールは成功したみたいで
.local/bin/aws を叩くと動くのですが
この状態で aws コマンドをたたいてみたんですがやはり
.pyenv/shims/aws という場所をみにいってしまい同じエラーが出ます
pyenv の設定でいろんなブログで
```
export PYENV_ROOT="$HOME/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
 export PATH="$PATH:$HOME/.pyenv/bin"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"
fi
```
こういうのを .bashrc にかけといってるんですがこれのせいで
.pyenv/shims/bin というパスが最優先で追加されてみにいってしまいます
これでは pyenv で切り替えても古いコマンドをみにいってしまって意味がないように思うのですが
使い方が間違っているのでしょうか
3.7 の状態で 3.7 の依存関係でインストールされたコマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
3.7 の状態でインストールされたコマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
  • Python

    36093 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • pip

    828 questions

    pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

5 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/06/07 11:07  投稿

pyenv によるバージョン管理の仕方
python 自体はほとんどかいたことがない初心者です
AWS ラムダでサポートしてる最新の 3.7 を使うために
pyenv というのを使ってもともとあった python とは別の 3.7.0 をインストールしてみたのですが
```bash
> aws
pyenv: aws: command not found
The `aws' command exists in these Python versions:
 3.5.0/envs/aws
 aws
```
となります
3.7.0 をインストールした直後なのでコマンドがないのはわかるのですが
この状態で pip install awscli して
`
Requirement already satisfied: awscli in $HOME/.local/lib/python3.7/site-packages (1.16.172)
`
にインストールは成功したみたいで
.local/bin/aws を叩くと動くのですが
この状態で aws コマンドをたたいてみたんですがやはり
.pyenv/shims/aws という場所をみにいってしまい同じエラーが出ます
pyenv の設定でいろんなブログで
```
export PYENV_ROOT="$HOME/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
 export PATH="$PATH:$HOME/.pyenv/bin"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"
fi
```
こういうのを .bashrc にかけといってるんですがこれのせいで
.pyenv/shims/bin というパスが最優先で追加されてみにいってしまいます
これでは pyenv で切り替えても古いコマンドをみにいってしまって意味がないように思うのですが
使い方が間違っているのでしょうか
3.7 の状態で 3.7 の依存関係でインストールされたコマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
  • Python

    36093 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • pip

    828 questions

    pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

4 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/06/07 11:06  投稿

pyenv によるバージョン管理の仕方
python 自体はほとんどかいたことがない初心者です
AWS ラムダでサポートしてる最新の 3.7 を使うために
pyenv というのを使ってもともとあった python とは別の 3.7.0 をインストールしてみたのですが
global か local で現在のバージョンが 3.7.0 の状態で aws コマンドを打つと
```bash
> aws
pyenv: aws: command not found
The `aws' command exists in these Python versions:
 3.5.0/envs/aws
 aws
```
となります
3.7.0 をインストールした直後なのでコマンドがないのはわかるのですが
この状態で pip install awscli して
`
Requirement already satisfied: awscli in $HOME/.local/lib/python3.7/site-packages (1.16.172)
`
にインストールは成功したみたいで
.local/bin/aws を叩くと動くのですが
この状態で aws コマンドをたたいてみたんですがやはり
.pyenv/shims/aws という場所をみにいってしまい同じエラーが出ます
pyenv の設定でいろんなブログで
```
export PYENV_ROOT="$HOME/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
 export PATH="$PATH:$HOME/.pyenv/bin"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"
fi
```
こういうのを .bashrc にかけといってるんですがこれのせいで
.pyenv/shims/bin というパスが最優先で追加されてみにいってしまいます
これでは pyenv で切り替えても古いコマンドをみにいってしまって意味がないように思うのですが
使い方が間違っているのでしょうか
3.7 の状態で 3.7 の依存関係でインストールされた aws コマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
3.7 の状態で 3.7 の依存関係でインストールされたコマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
  • Python

    36093 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • pip

    828 questions

    pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

3 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/06/07 11:06  投稿

pyenv によるバージョン管理の仕方
python 自体はほとんどかいたことがない初心者です
AWS ラムダでサポートしてる最新の 3.7 を使うために
pyenv というのを使ってもともとあった python とは別の 3.7.0 をインストールしてみたのですが
global か local で現在のバージョンが 3.7.0 の状態で aws コマンドを打つと
```bash
> aws
pyenv: aws: command not found
The `aws' command exists in these Python versions:
 3.5.0/envs/aws
 aws
```
となります
3.7.0 をインストールした直後なのでコマンドがないのはわかるのですが
この状態で pip install awscli して
`
Requirement already satisfied: awscli in $HOME/.local/lib/python3.7/site-packages (1.16.172)
`
にインストールは成功したみたいで
.local/bin/aws を叩くと動くのですが
この状態で aws コマンドをたたいてみたんですがやはり
.pyenv/shims/aws という場所をみにいってしまい同じエラーが出ます
pyenv の設定でいろんなブログで
```
export PYENV_ROOT="$HOME/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
 export PATH="$PATH:$HOME/.pyenv/bin"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"
fi
```
こういうのをかけといってるんですがこれのせいで
こういうのを .bashrc にかけといってるんですがこれのせいで
.pyenv/shims/bin というパスが最優先で追加されてみにいってしまいます
これでは pyenv で切り替えても古いコマンドをみにいってしまって意味がないように思うのですが
使い方が間違っているのでしょうか
3.7 の状態で 3.7 の依存関係でインストールされた aws コマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
  • Python

    36093 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • pip

    828 questions

    pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

2 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/06/07 11:05  投稿

pyenv によるバージョン管理の仕方
python 自体はほとんどかいたことがない初心者です
AWS ラムダでサポートしてる最新の 3.7 を使うために
pyenv というのを使ってもともとあった python とは別の 3.7.0 をインストールしてみたのですが
global か local で現在のバージョンが 3.7.0 の状態で aws コマンドを打つと
```
```bash
> aws
pyenv: aws: command not found
The `aws' command exists in these Python versions:
 3.5.0/envs/aws
 aws
```
となります
3.7.0 をインストールした直後なのでコマンドがないのはわかるのですが
この状態で pip install awscli して
`
Requirement already satisfied: awscli in $HOME/.local/lib/python3.7/site-packages (1.16.172)
`
にインストールは成功したみたいで
.local/bin/aws を叩くと動くのですが
この状態で aws コマンドをたたいてみたんですがやはり
.pyenv/shims/aws という場所をみにいってしまい同じエラーが出ます
pyenv の設定でいろんなブログで
```
export PYENV_ROOT="$HOME/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
 export PATH="$PATH:$HOME/.pyenv/bin"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"
fi
```
こういうのをかけといってるんですがこれのせいで
.pyenv/shims/bin というパスが最優先で追加されてみにいってしまいます
これでは pyenv で切り替えても古いコマンドをみにいってしまって意味がないように思うのですが
使い方が間違っているのでしょうか
3.7 の状態で 3.7 の依存関係でインストールされた aws コマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
  • Python

    36093 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • pip

    828 questions

    pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

1 質問内容の修正

退会済みユーザー

退会済みユーザー

2019/06/07 11:04  投稿

pyenv によるバージョン管理の仕方
python 自体はほとんどかいたことがない初心者です
AWS ラムダでサポートしてる最新の 3.7 を使うために
pyenv というのを使ってもともとあった python とは別の 3.7.0 をインストールしてみたのですが
global か local で現在のバージョンが 3.7.0 の状態で aws コマンドを打つと
```
> aws
pyenv: aws: command not found
The `aws' command exists in these Python versions:
 3.5.0/envs/aws
 aws
```
となります
3.7.0 をインストールした直後なのでコマンドがないのはわかるのですが
この状態で pip install awscli して
`
Requirement already satisfied: awscli in $HOME/.local/lib/python3.7/site-packages (1.16.172)
`
にインストールは成功したみたいで
.local/bin/aws を叩くと動くのですが
この状態で aws コマンドをたたいてみたんですがやはり
.pyenv/shims/aws という場所をみにいってしまい同じエラーが出ます
pyenv の設定でいろんなブログで
```
export PYENV_ROOT="$HOME/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
 export PATH="$PATH:$HOME/.pyenv/bin"
 eval "$(pyenv init -)"
 eval "$(pyenv virtualenv-init -)"
fi
```
こういうのをかけといってるんですがこれのせいで
.pyenv/shims/bin というパスが最優先で追加されてみにいってしまいます
これでは pyenv で切り替えても古いコマンドをみにいってしまって意味がないように思うのですが
使い方が間違っているのでしょうか
  • Python

    36093 questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • pip

    828 questions

    pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る