python相對匯入注意事項
最簡單直接的辦法就是:
直接把要匯入的 package 複製到 site-package資料夾下!
或者把 package 所在的路徑加到 python 的搜尋路徑裡面!
上面兩種應該是最好的辦法
在 pycharm 中執行指令碼時,相對匯入可以直接使用
但是如果系統直接執行python指令碼from .. import XXX
(上一級目錄的package)from . import XXX
(當前工作目錄的package)
可能會有ValueError: attempted relative import beyond top-level package
SystemError: Parent module '' not loaded, cannot perform relative import
這樣的錯誤
產生錯誤的原因:
沒有
__init__.py
檔案:相對匯入時,package 所對應的資料夾必須被 python直譯器 視作 package,
而不是普通資料夾,也就是說資料夾中必須要有__init__.py
檔案當前級別的目錄中執行了py指令碼:該資料夾不能作為主函式的入口(頂層模組)來執行該資料夾中的py檔案,想執行的話可以把主函式放在該資料夾的上一級目錄中(不過這樣似乎不利於指令碼的分類整理,如果想把一類的指令碼放到一個資料夾下的話,這個資料夾就又成了主函式的入口?所以建議直接用開頭的兩個方法完成匯入)
在"from YY import XX"這樣的程式碼中,無論是XX還是YY,只要被python直譯器視作package,就會首先呼叫該package的init.py檔案。如果都是package,則呼叫順序是YY,XX
相關文章
- Python匯入包的注意事項Python
- sqoop匯入orcle注意事項OOP
- VirtualBox匯入虛擬機器注意事項虛擬機
- Oracle中exp,imp(匯入匯出)資料遷移注意事項Oracle
- Oracle 資料匯出注意事項Oracle
- Oracle IMPDP匯入資料案例之注意事項(undo/temp)Oracle
- IDEA 匯入cordova3.5工程目錄注意事項Idea
- 安裝python3.5注意事項及相關命令Python
- Photoshop教程中匯入coreldraw的三種格式和注意事項
- Python——常見注意事項Python
- 後端介面對接注意事項後端
- Flutter 登入退出功能注意事項Flutter
- SQL登入失敗注意事項SQL
- Python eval的用法及注意事項Python
- 安裝mysql-python注意事項MySqlPython
- Python多重繼承注意事項!Python教程Python繼承
- RandomAccessFile注意事項randomMac
- nginx 注意事項Nginx
- iOS開發中整合FFmpeg以及相關注意事項iOS
- MySQL匯入CSV/TXT等資料來源中資料操作流程及注意事項MySql
- Python Enum 使用的幾點注意事項Python
- Python閉包的兩個注意事項Python
- 用IDA匯出map檔案時的注意事項
- Java入門學習注意事項有哪些?Java
- 快取注意事項快取
- 使用parallel注意事項Parallel
- 字串分割注意事項字串
- Xlistview的注意事項View
- 函式注意事項函式
- DUPLICATE DATABASE 注意事項Database
- bootstrap引用注意事項boot
- ovm搭建注意事項
- Python使用import匯入相對路徑的其他py檔案PythonImport
- Python相對匯入導致SystemError的解決方案(譯)PythonError
- 入門筆記 --- Golang 語法注意事項(一)筆記Golang
- 部署專案注意事項
- iOS 程式碼注意事項iOS
- 換工作的注意事項