簡體   English   中英

tox 無法找到 boto3,即使它已安裝

[英]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.pypyproject.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM