如何在 Amazon Linux 2 上使用 Boto 3 程式庫建立 Python 3 虛擬環境?
我具有在 Amazon Linux 2 上執行的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。我想在執行個體上使用 Boto 3 程式庫建立隔離的 Python 3 虛擬環境。
解決方法
安裝 Python 3 for Amazon Linux 2
-
使用 SSH 連接至 EC2 Linux 執行個體。如需詳細資訊,請參閱使用 SSH 從 Linux 或 macOS 連接至 Linux 執行個體。
-
執行 yum check-update 以重新整理套件索引。check-update 也會尋找可用的更新。您不需要更新其他套件即可建立 Python 3 環境。
-
若要確定您的主機是否已安裝 Python 3,請執行 list installed:>
[ec2-user ~]$ yum list installed | grep -i python3
如果沒有安裝 Python 3,您會收到下列輸出:
[ec2-user ~]$ yum list installed | grep -i python3[ec2-user ~]$ [ec2-user ~]$ python3 -bash: python3: command not found
如果已安裝 Python 3,您會收到下列輸出:
[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.gz
-
如果沒有安裝 Python 3,請使用 yum 套件管理員安裝此套件:
[ec2-user ~]$ sudo yum install python3 -y
在 ec2 使用者主目錄下建立虛擬環境
下列命令會建立在其內部具有虛擬環境的應用程式目錄。您可以將 my_app 變更為其他名稱。如果您變更 my_app,請在剩餘的解決方法步驟中參照新名稱:
[ec2-user ~]$ python3 -m venv my_app/env
啟用虛擬環境並安裝 Boto 3
-
使用許可政策,將 AWS Identity and Access Management (IAM) 角色連接至 EC2 執行個體,以便 Boto 3 與 AWS API 互動。如需其他身分驗證方法,請參閱 Boto 3 文件。
-
若要啟用環境,請在專案目錄下的 bin 目錄中獲取 activate 檔案:
[ec2-user ~]$ source ~/my_app/env/bin/activate(env) [ec2-user ~]$
-
確定您的環境已安裝最新的 pip 模組:
(env) [ec2-user ~]$ pip install pip --upgrade
-
若要在虛擬環境內安裝 Boto 3 程式庫,請使用 pip 命令:
(env) [ec2-user ~]$ pip install boto3
-
執行 Python:
(env) [ec2-user ~]$ pythonPython 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. >>>>
-
匯入 Boto 3 程式庫,然後確認它可以運作。此步驟需要您已從步驟 1 設定許可政策。下列範例輸出列出帳戶內的所有 Amazon Simple Storage Service (Amazon S3) 儲存貯體:
>>> import boto3 # no error>>> s3 = boto3.resource('s3') >>> for bucket in s3.buckets.all(): print(bucket.name) >>> exit()
-
若要結束虛擬環境,請執行 deactivate 命令:
(env) [ec2-user ~]$ deactivate [ec2-user ~]$
-
若要在登入時自動啟用虛擬環境,請將其新增至 ~/.bashrc 檔案:
[ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc
-
從主目錄中獲取 ~/.bashrc 檔案,以重新載入您環境的 bash 環境。這會自動啟用您的虛擬環境。提示會反映變更 (env)。此變更也會套用至任何未來的 SSH 工作階段:
[ec2-user ~]$ source ~/.bashrc (env) [ec2-user ~]$
相關資訊
Python Packaging Authority (PYPA) 網站上的 Virtualenv
相關內容
- 已提問 6 個月前lg...
- 已提問 4 個月前lg...
- 已提問 6 個月前lg...
- 已提問 1 年前lg...
- 已提問 10 個月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前