[英]tox unable to find boto3 even though it is installed
我有一個Python
tox
項目,我在其中運行 tox 來運行測試用例,幾個小時前我遇到了一個錯誤,直到現在都無法解決。 我的模塊正在使用 boto3 庫並使用以下兩個命令進行安裝:
pip3 install boto3
pip install boto3 //for venv environments
當我嘗試再次安裝它時,它給了我下面的堆棧跟蹤:
Requirement already satisfied: boto3 in ./venv/lib/python3.8/site-packages (1.26.34)
Requirement already satisfied: botocore<1.30.0,>=1.29.34 in ./venv/lib/python3.8/site-packages (from boto3) (1.29.34)
Requirement already satisfied: jmespath<2.0.0,>=0.7.1 in ./venv/lib/python3.8/site-packages (from boto3) (1.0.1)
Requirement already satisfied: s3transfer<0.7.0,>=0.6.0 in ./venv/lib/python3.8/site-packages (from boto3) (0.6.0)
Requirement already satisfied: urllib3<1.27,>=1.25.4 in ./venv/lib/python3.8/site-packages (from botocore<1.30.0,>=1.29.34->boto3) (1.26.13)
Requirement already satisfied: python-dateutil<3.0.0,>=2.1 in ./venv/lib/python3.8/site-packages (from botocore<1.30.0,>=1.29.34->boto3) (2.8.2)
Requirement already satisfied: six>=1.5 in ./venv/lib/python3.8/site-packages (from python-dateutil<3.0.0,>=2.1->botocore<1.30.0,>=1.29.34->boto3) (1.16.0)
但是當我運行 tox 時,它給了我以下錯誤:
File "/Users/tony/IdeaProjects/abc/provisioner/.tox/py38/lib/python3.8/site-packages/api/lambda_handler.py", line 1, in <module>
import boto3
ModuleNotFoundError: No module named 'boto3'
有什么路徑問題嗎? 我正在使用Python 3.8.10
。 我嘗試卸載和安裝軟件包,但沒有任何改變。
任何幫助深表感謝。
tox
為構建和測試創建了一個隔離的環境。 所以,當你在某個地方安裝一個包時,這里boto3
和 pip/pip3,可能是系統范圍的, tox
會忽略它——這是一件好事,否則就不可能有一個干凈的測試環境。
您需要為tox
提供必要的依賴項。
tox
自動安裝一個包,即。 當有setup.py
或pyproject.toml
。 您還可以直接通過deps
配置鍵提供您的依賴項:
[testenv]
commands = ...
deps = boto3
還有另一種方法。 您可以使用tox-current-env
插件“打破”測試隔離,請參閱https://pypi.org/project/tox-current-env/
免責聲明
我是tox
維護者之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.