如上圖所示,我想在test_1.py文件中import我在lstm_1.py中定義的LstmParam和 LstmNetwork。我直接採用的是最簡單的引用方法:from lstm_1 import LstmParam, LstmNetwork,可是很明顯報錯了,不能直接這樣引用。由於,編譯環境沒法直接找到。python
當你import的時候,python解釋器只會在sys.path這個變量(一個list,你能夠print出來看)裏面的路徑中找可能匹配的package或module。app
而一個package跟一個普通文件夾的區別在於,package的文件夾中多了一個__init__.py文件。換句話說,若是你在某個文件夾中添加了一個__init__.py文件,則python就認爲這個文件夾是一個python中的package。spa
__init__.py文件的內容能夠是空的(package裏面必備這個模塊,.py的文件就是模塊,這個知識點要知道),它只是告訴python當前文件夾是一個python中的package。固然,你能夠在這個__init__.py的module裏面添加一些代碼,這些代碼會在import這個package的時候運行,也就是package下__init__.py模塊,會在import package後,馬上會從無縮進的地方開始執行代碼。blog
因此,請確保你要import的py文件所在的目錄有__init__.py文件。element
那出現以上問題時咱們怎樣才能成功引用呢?解決方法就是講咱們須要引用的目標文件放到咱們編譯環境的site-pakage 包文件裏邊,而後就能夠import了。get