報錯截圖
ImportError while loading conftest 'E:\python\HuaFansApi\test_case\conftest.py'. test_case\conftest.py:8: in <module> from Tools.my_sql import data_sql E ImportError: No module named 'Tools.my_sql'
模塊搜索路徑
當我們試圖加載一個模塊時,Python會在指定的路徑下搜索對應的.py文件,如果找不到,就會報錯:
默認情況下,Python解釋器會搜索當前目錄、所有已安裝的內置模塊和第三方模塊,搜索路徑存放在sys
模塊的path
變量中:
[ 'E:\\python', 'D:\\Python34\\python34.zip', 'D:\\Python34\\DLLs', 'D:\\Python34\\lib', 'D:\\Python34', 'C:\\Users\\10690\\AppData\\Roaming\\Python\\Python34\\site-packages',
'D:\\Python34\\lib\\site-packages', 'D:\\Python34\\lib\\site-packages\\suds_jurko-0.4.1.jurko.4-py3.4.egg', 'D:\\Python34\\lib\\site-packages\\pip-18.1-py3.4.egg',
'D:\\Python34\\lib\\site-packages\\jsonpath_rw-1.2.2-py3.4.egg', 'D:\\Python34\\lib\\site-packages\\appium_python_client-0.9-py3.4.egg', 'D:\\Python34\\lib\\site-packages\\win32',
'D:\\Python34\\lib\\site-packages\\win32\\lib', 'D:\\Python34\\lib\\site-packages\\Pythonwin']
如果我們要添加自己的搜索目錄,有兩種方法:
一是直接修改sys.path
,添加要搜索的目錄:
>>> import sys >>> sys.path.append('/Users/michael/my_py_scripts')
這種方法是在運行時修改,運行結束后失效。
第二種方法是設置環境變量PYTHONPATH
,該環境變量的內容會被自動添加到模塊搜索路徑中。設置方式與設置Path環境變量類似。注意只需要添加你自己的搜索路徑,Python自己本身的搜索路徑不受影響。
解決放法:
在conftest.py文件導入前添加以下代碼
import sys, os sys.path.append((os.path.abspath(os.path.join(os.path.dirname(__file__), '../'))))