綜述:問題來源于Mac或是Linux,僅供參考
1.pytest在cmd執(zhí)行的時候報錯找不到該命令奈附,但是已經(jīng)用sudo pip3 install -U pytest? 和? ?pip3installpytest -ihttp://pypi.douban.com/simple/--trusted-host pypi.douban.com? 安裝成功贷痪。(MAC)
解決辦法:在執(zhí)行sudo pip3 install -U pytest時會提示
Requirement already satisfied, skipping upgrade: more-itertools>=4.0.0 in /Users/sort/Library/Python/3.7/lib/python/site-packages (from pytest) (8.4.0)
進(jìn)入site-packages下面,刪除與pytest相關(guān)的所有目錄文件:rm -rf ./pytest*
然后重新執(zhí)行安裝命令即可
2.在執(zhí)行pytest時,類報錯找不到文件目錄from libs.BaseTest import BaseTest? ? ?E? ModuleNotFoundError: No module named 'libs'
解決辦法:文件頭添加代碼
import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))? //獲取當(dāng)前目錄絕對路徑
rootPath = os.path.split(curPath)[0]//獲取上一級目錄的絕對路徑
sys.path.append(rootPath)//將模塊路徑添加到程序中
理解:當(dāng)我們導(dǎo)入一個模塊時:import? xxx宠叼,默認(rèn)情況下python解析器會搜索當(dāng)前目錄、已安裝的內(nèi)置模塊和第三方模塊,搜索路徑存放在sys模塊的path中冒冬。
所以當(dāng)報錯找不到某個模塊的時候伸蚯,有兩種解決方式,一種如上简烤。這種方法是運(yùn)行時修改剂邮,腳本運(yùn)行后就會失效的。另外一種方法是將項目路徑寫入系統(tǒng)環(huán)境變量中横侦。
vim ~/.bash_profile
我選擇第一種方法挥萌,原因是工程經(jīng)常會被遷移部署到不同機(jī)器。參考:https://blog.csdn.net/cqbamboo/article/details/103012429