質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

pip

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

Q&A

解決済

1回答

616閲覧

pip listコマンドの実行結果の差異について

yuta1989

総合スコア65

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

pip

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

0グッド

0クリップ

投稿2022/08/23 04:27

編集2022/08/23 04:46

ローカルのdockerコンテナのPythonコードをaws cloudformationでAWS Lambdaにデプロイしたのですが、pip listの実行結果に差異がありました(下記)。
pycryptodomeをインストールしているのですが、Lambdaの方では出てこなかったのはなんでか確認しています。
普通は同じ結果になるでしょうか?

LambdaのPythonから実行

Package Version --------------- ------- awslambdaric 2.0.4 boto3 1.20.32 botocore 1.23.32 jmespath 0.10.0 pip 22.0.4 python-dateutil 2.8.2 s3transfer 0.5.2 setuptools 58.1.0 simplejson 3.17.2 six 1.16.0 urllib3 1.26.9

ローカルのコンテナから実行

bash-4.2# pip list Package Version ------------------ --------- attrs 22.1.0 boto3 1.24.45 botocore 1.27.54 certifi 2022.6.15 cffi 1.15.1 charset-normalizer 2.1.0 coverage 6.4.4 cryptography 37.0.4 docker 5.0.3 execnet 1.9.0 idna 3.3 iniconfig 1.1.1 Jinja2 3.1.2 jmespath 1.0.1 MarkupSafe 2.1.1 mock 4.0.3 moto 3.1.16 packaging 21.3 pep8 1.7.1 pip 22.2.2 pluggy 1.0.0 py 1.11.0 pycparser 2.21 pycryptodome 3.15.0 pyparsing 3.0.9 pytest 6.2.5 pytest-cache 1.0 pytest-cov 3.0.0 pytest-mock 3.8.2 pytest-pep8 1.0.6 pytest-pythonpath 0.7.4 python-dateutil 2.8.2 pytz 2022.2.1 requests 2.28.1 responses 0.21.0 s3transfer 0.6.0 setuptools 58.1.0 six 1.16.0 toml 0.10.2 tomli 2.0.1 urllib3 1.26.11 websocket-client 1.3.3 Werkzeug 2.2.2 xmltodict 0.13.0

【参考】
LambdaのPythonから pip list コマンドを実行したコードは下記になります。

Python

1import subprocess 2def lambda_handler(event, context): 3 cp = subprocess.run('pip list', shell=True, capture_output=True, text=True) 4 print(cp.stdout)

dockerファイルは下記になります。

FROM amazonlinux:latest #-------------------------- # 依存パッケージインストール #-------------------------- ENV PYENV_ROOT $HOME/.pyenv ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH RUN yum -y update && \ yum -y groupinstall "Development Tools" && \ # pip install --upgrade pip && \ yum -y install openssl-devel sqlite-devel wget git libffi-devel && \ git clone https://github.com/yyuu/pyenv.git .pyenv && \ pyenv install 3.9.10 && \ pyenv install 2.7.14 && \ pyenv global 3.9.10 && \ pyenv rehash #-------------------------- # AWS CLI インストール #-------------------------- RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \ unzip awscliv2.zip && \ ./aws/install #-------------------------- # プロジェクトフォルダ作成 #-------------------------- ARG project_dir=/opt/test RUN mkdir $project_dir && \ mkdir $project_dir/resource && \ mkdir $project_dir/unittest ADD requirements.txt requirements.txt RUN pip install --upgrade pip && \ pip install --default-timeout=1000 -r requirements.txt #-------------------------- # テスト設定 #-------------------------- ENV PYTHONPATH $PYTHONPATH:$project_dir/unittest/src ENV PYTHONPATH $PYTHONPATH:$project_dir/unittest/lib ENV PYTHONPATH $PYTHONPATH:$project_dir/unittest/utility #-------------------------- # OS設定 #-------------------------- RUN echo "alias ll='ls -la'" >> ~/.bash_profile RUN echo "export LANG=en_US.UTF-8" >> ~/.bash_profile WORKDIR $project_dir

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

AWS LambdaならAWSが用意したPython環境で動かすのですからインストールされているパッケージが異なるのは当たり前ですね。

投稿2022/08/23 04:55

RiaFeed

総合スコア2701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuta1989

2022/08/23 04:56

早速のご回答ありがとうございました。
yuta1989

2022/08/23 04:58

Lambdaを使ってローカルと同じ環境(インストールしてるライブラリが同じ)にしたい場合はどのようにしたらいいのでしょうか(できるのでしょうか)…?
yuta1989

2022/08/23 05:00

Dockerファイルの中で RUN pip install -r requirements.txt としたら、同じ環境になると思っていました。。
RiaFeed

2022/08/23 05:07

LambdaベースのイメージのコンテナをAWS Lambdaに乗せる方法もあるみたいです
yuta1989

2022/08/23 06:37

教えていただきありがとうございます。 確認してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問