回答
我在運行裏面的腳本時發現有錯誤,其中包含包。對於口譯員來說,看起來好像包裝不是包裝。
嘗試將腳本帶入另一個目錄,將您的軟件包放入您的pythonpath
中,並完全導入。然後,你的包內的相對導入將會起作用。注意:您仍然可以在最終腳本內部不進行相對導入 - 在這種情況下最簡單的做法是製作一個「包裝器」腳本,它只需調用包中的某個入口點即可。
您可以通過使用setuptools
爲您的包創建一個setup.py
以使其可分發,從而可以更進一步。然後,作爲其中的一部分,entry points將允許您自動生成調用您的程序包代碼的腳本。
編輯:
從您的評論,看起來好像我不太清楚。我不是100%確定你的目錄結構,因爲您的評論上面沒有格式化,但我把它是這樣的:
PythonEvent/
main.py
__init__.py
DBConnector/
__init__.py
connector.py
service/
__init__.py
myservice.py
當myservice.py
你也行from ..DBConnector.connector import DBUpdate
,解釋嘗試導入它相對來說,,除非你直接運行myservice.py
。這就是你現在所做的。
嘗試製作的PythonEvent/
之外的另一個虛擬腳本,那簡直如下:
from PythonEvent.service import myservice
if __name__ == '__main__':
myservice.main() # or whatever the entry point is called in myservice.
然後,設置你的PYTHONPATH
環境變量指向的PythonEvent/
父目錄(或移動PythonEvent/
到您的站點包) 。
沒有得到正確..線路有 – user865438
非常感謝...現在它工作正常。 – user865438
main.py
setup.py
Main Package/ ->
__init__.py
subpackage_a/ ->
__init__.py
module_a.py
subpackage_b/ ->
__init__.py
module_b.py
我)
1.You run python main.py
2.main.py does: import app.package_a.module_a
3.module_a.py does import app.package_b.module_b
II)
Alternatively 2 or 3 could use: from app.package_a import module_a
That will work as long as you have app in your PYTHONPATH. main.py could be anywhere then.
所以你寫一個setup.py複製(安裝),整個應用程序包和子包到目標系統的python文件夾和main.py來定位系統的腳本文件夾。
- 1. Django中的相對導入
- 2. Python中的相對導入
- 3. Python中的相對導入混亂
- 4. 相對導入失敗
- 5. py2exe相對導入錯誤
- 6. Python相對導入錯誤?
- 7. 相對導入錯誤
- 8. manage.py shell和相對導入
- 9. Python包:相對導入
- 10. 相對模板導入
- 11. Python相對導入問題
- 12. Django Apache ValueError:試圖在非包中導入相對導入
- 13. 在python絕對導入不工作,相對導入工作
- 14. Python相對/絕對導入(再次)
- 15. 編譯和安裝python2.6.5-devel的
- 16. 我的相對導入不起作用
- 17. Python3在包內的相對導入
- 18. Python的相對導入找不到包
- 19. Python3:超出頂層的相對導入
- 20. 具有相對路徑的導入DscResources
- 21. (Python)相對導入最佳做法(導入x或from。import x)
- 22. ROS導入srv消息 - 相對導入跳轉問題
- 23. Python模塊導入 - 明確VS隱相對導入
- 24. 從多個位置導入模塊時python3相對導入
- 25. 從相對路徑導入模塊
- 26. python:強制非相對導入?
- 27. 如何導入相對Python包(pycrypto)
- 28. 從當前文件相對導入
- 29. 相對導入需要'包'參數
- 30. Python 2.7模擬相對導入
(1)這是'__init __。py',請確保您有這個權利。 (2)你確定所有'__init__'文件都在正確的位置嗎?請張貼您的目錄結構列表,以便我們幫助指出錯誤。 –
除非您向我們提供目錄結構和違規代碼的概述,否則無法分辨出問題所在。 –
您應該可能顯示您的導入語句和您的目錄結構以獲得幫助...... – Constantinius