Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
如何在 AL2 或 AL2023 上使用 Boto3 函式庫建立 Python 3 虛擬環境?
我有一個在 Amazon Linux 2 (AL2) 或 Amazon Linux 2023 (AL2023) 上執行的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。我想在執行個體上使用 AWS SDK for Python (Boto3) 建立隔離的 Python 3 虛擬環境。
解決方法
安裝 Python 3
請完成下列步驟:
-
若要重新整理套件索引,請執行以下命令:
yum check-update**注意:**上述命令也會尋找可用的更新。您不需要更新其他套件即可建立 Python 3 環境。
-
若要確定您的主機是否已安裝 Python 3,請執行下列命令:
[ec2-user ~]$ yum list installed | grep -i python3如果未安裝 Python 3,那麼您將收到以下輸出:
[ec2-user ~]$ yum list installed | grep -i python3 [ec2-user ~]$ python3 -bash: python3: command not found如果已安裝 Python 3,那麼您將根據您的發行版收到以下輸出:
AL2:[ec2-user ~]$ yum list installed | grep -i python3 python3.x86_64 3.7.4-1.amzn2.0.4 @amzn2-core python3-libs.x86_64 3.7.4-1.amzn2.0.4 @amzn2-core python3-pip.noarch 9.0.3-1.amzn2.0.1 @amzn2-core python3-setuptools.noarch 38.4.0-3.amzn2.0.6 @amzn2-core [ec2-user ~]$ whereis python3 python3: //usr/bin/python3 /usr/bin/python3.7 /usr/bin/python3.7m /usr/lib/python3.7 /usr/lib64/python3.7 /usr/include/python3.7m /usr/share/man/man1/python3.1.gzAL2023:
[ec2-user ~]$ yum list installed | grep -i python3 python3.x86_64 3.9.21-1.amzn2023.0.3 @System python3-pip-wheel.noarch 21.3.1-2.amzn2023.0.11 @System python3-libs.x86_64 3.9.21-1.amzn2023.0.3 @System python3-setuptools.noarch 59.6.0-2.amzn2023.0.5 @System [ec2-user ~]$ whereis python3 python3: /usr/bin/python3 /usr/share/man/man1/python3.1.gz -
如果未安裝 Python 3,請執行以下命令,以使用 yum 套件管理器安裝套件:
[ec2-user ~]$ sudo yum install python3 -y
在 ec2-user 主目錄下建立虛擬環境
若要建立包含虛擬環境的應用程式目錄,請執行下列命令:
[ec2-user ~]$ python3 -m venv my_app/env
**注意:**將 my_app 替換為您的應用程式目錄名稱。
啟用虛擬環境並安裝 Boto3 函式庫
請完成下列步驟:
-
將 AWS Identity and Access Management (IAM) 角色附加到您的執行個體。該角色必須具有權限政策,允許 SDK for Python (Boto3) 執行您的組態所需的動作。其他驗證方法,請參閱 Boto3 網站上的組態。
-
若要啟用環境,請執行以下命令:
[ec2-user ~]$ source ~/my_app/env/bin/activate (env) [ec2-user ~]$**注意:**將 my_app 替換為您的應用程式目錄名稱。
-
若要確認您的環境已安裝最新的 pip 模組,請執行以下命令:
(env) [ec2-user ~]$ pip install pip --upgrade -
若要在虛擬環境中安裝 Boto3 函式庫,請執行下列命令:
(env) [ec2-user ~]$ pip install boto3 -
若要執行 Python,請執行以下命令:
(env) [ec2-user ~]$ python Python 3.7.4 (default, Dec 13 2019, 01:02:18)[GCC 7.3.1 20180712 (Red Hat 7.3.1-6)] on linux Type "help", "copyright", "credits" or "license" for more information. >>>> -
若要匯入 Boto3 函式庫並確認其正常運作,請執行下列命令:
>>> import boto3 # no error以下範例輸出列出了 AWS 帳戶內的所有 Amazon Simple Storage Service (Amazon S3) 儲存貯體:
>>> import boto3 # no error >>> s3 = boto3.resource('s3') >>> for bucket in s3.buckets.all(): ... print(bucket.name) ... # Press Enter twice to execute the loop >>> exit() # Then type exit() to quit Python shell -
若要退出虛擬環境,請執行以下命令:
(env) [ec2-user ~]$ deactivate [ec2-user ~]$ -
若要在登入時自動啟用虛擬環境,請執行以下命令來更新 ~/.bashrc 檔案:
[ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc**注意:**將 my_app 替換為您的應用程式目錄名稱。上述命令會自動啟用您的虛擬環境。
-
若要重新載入環境的 bash 環境,請執行下列命令:
[ec2-user ~]$ source ~/.bashrc輸出範例:
(env) [ec2-user ~]$**注意:****(env) ** 表示您已正確啟用虛擬環境。現在,您可以在所有未來的 SSH 工作階段中,以及執行 source ~/bashrc 命令後,預設使用 Python 環境。
相關資訊
Python Packaging Authority (PyPA) 網站上的 Virtualenv
相關內容
- 已提問 1 年前
- 已提問 1 年前
