cmd命令中運行pytest命令導入模塊報錯解決方法


報錯截圖

 

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__), '../'))))

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM