簡體   English   中英

/usr/bin/python3: 沒有名為 pytest 的模塊

[英]/usr/bin/python3: No module named pytest

我使用python3 -m pytest來運行我的測試。 當 python3 指向 python3.6 時,這是有效的。 我安裝了 python3.7,使用以下命令將 python3.7 作為我的默認 python3:

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
sudo update-alternatives --config python3 

並為python3.7再次安裝了所有必需的包。 但是現在我不能再運行我的測試了。 因為它說: /usr/bin/python3: No module named pytest 我沒有使用虛擬環境,問題不在於特定模塊,因為它也找不到其他模塊。 它應該與python路徑有關。 我不知道在 python3 版本之間切換后要更改什么,因此它可以輕松地在/home/ubuntu/.local/lib/python3.x/site-packages/找到所需的模塊。

我切換回 python3.6 並得到ModuleNotFoundError: No module named 'jsonpath_ng' now,它在切換到 python3.7 之前工作。 這是python3 -m site的輸出:

sys.path = [
    '/home/ubuntu',
    '/usr/lib/python36.zip',
    '/usr/lib/python3.6',
    '/usr/lib/python3.6/lib-dynload',
    '/home/ubuntu/.local/lib/python3.6/site-packages',
    '/usr/local/lib/python3.6/dist-packages',
    '/usr/lib/python3/dist-packages',
]
USER_BASE: '/home/ubuntu/.local' (exists)
USER_SITE: '/home/ubuntu/.local/lib/python3.6/site-packages' (exists)
ENABLE_USER_SITE: True

感謝@hoefling,我通過運行python3 -m site發現了問題。 我正在使用我的 jenkins 用戶而不是 root 運行測試,而我正在為 root 用戶安裝所有東西。 所以 USER_SITE 對於 jenkins 用戶來說實際上並不存在。 我為 jenkins 用戶再次安裝了所有東西,現在當我使用python3 -m時它可以找到模塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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