python 自体はほとんどかいたことがない初心者です
AWS ラムダでサポートしてる最新の 3.7 を使うために
pyenv というのを使ってもともとあった python とは別の 3.7.0 をインストールしてみたのですが
global も local でバージョンが 3.7.0 の状態で aws コマンドを打つと
bash
1> aws 2pyenv: aws: command not found 3 4The `aws' command exists in these Python versions: 5 3.5.0/envs/aws 6 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 の状態でインストールされたコマンドを絶対パスなしで呼び出すにはどうすればいいんでしょうか
追記:
.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 です


回答1件
あなたの回答
tips
プレビュー