私はpython-pipを使ってパッケージを更新しました。 2 人の異なるユーザーが異なるバージョンのバイナリを取得します。
andrew$ which aws
/usr/bin/aws
andrew$ /usr/bin/aws --version
aws-cli/1.16.194 Python/3.5.2 Linux/4.4.0-1087-aws botocore/1.12.184
andrew$ sudo su tomcat
tomcat$ which aws
/usr/bin/aws
tomcat$ /usr/bin/aws --version
aws-cli/1.11.13 Python/3.5.2 Linux/4.4.0-1087-aws botocore/1.4.70
これはTomcatユーザーとして実行されるアプリケーションとコマンドラインで発生します。私は今日(を使用して)1.11から1.16にアップグレードしましたが、pip3 install --upgrade pip awscli
Tomcatユーザーはまだ以前のバージョンを使用しています。 apache-tomcatサーバーを再起動し、ログアウトして再度ログインしました(まだサーバーを再起動していませんが)。 Linuxでは、あるユーザーにはプログラムをキャッシュし、他のユーザーにはキャッシュしないことは可能ですか?
コメントによれば、2人のユーザーの環境が異なると考えられます。つまり、Pythonがawscli.clidriverをインポートするとバージョンが異なることを意味します。しかし、世界中でどのように探したり修正したりしますか? Debian ストレッチ/SID, x86_64
答え1
これは pip 環境問題です。最初の数回試してみたところ、問題を解決する手順がうまくいかないと確信していたので、よく理解できませんでした。しかし、2人のユーザーになると、sudo apt-get remove awscli
最終的には好きなようにインストールされました。pip3 uninstall awscli
sudo pip3 install awscli
何十ものpipの質問と回答を読んだ後、私が知っているのは、さまざまなバージョンのpipが--userとsudoの権限とどのようにやり取りするのか理解していないことです。私の答えは正しいとマークされていませんが、他の答えを喜んで考えてみましょう。