python踩坑系列之導入包時下划紅線及報錯“No module named”問題
使用pycharm編寫Python時,自己寫了一個包(commontool),在同級另一個路徑下(fileshandle)導入此包時,包名和模塊名下都有紅色下划線,運行程序報錯 “ ModuleNotFoundError: No module named 'commontool' ”,針對此問題的幾種解決辦法:
方法一:
由於包和文件夾是有區別的,文件夾在創建時只會生成一個文件夾,不可以被導入。包在創建的時候會自動生成一個“ __init__.py ”的文件,這個文件定義了包的屬性和方法,所以包是可以被導入的。也可以在創建文件后,手動新建一個“ __init__.py ”文件。在包下“ __init__.py ”文件文件可以是空,但必須存在。所以要被導入,前提是類型必須是包類型。
方法二:
在 __init__.py文件中添加變量,如下:
__all__ = ["module_1","module_2","module_3"]
module為要該包下可以被導入的模塊。
方法三:
在 setting --> Project Structure 下將要被導入的設置為Sources
方法四:
1>如果要導入的包是在打開路徑的子目錄下,則可以直接進行導入,如下圖:
2>如果要導入的包是在項目的子目錄的子目錄下,也就是我這次遇到的情況,則要將包的父目錄設置成Sources。