簡體   English   中英

從同級目錄導入(python 3)

[英]Importing from sibling directories (python 3)

我無法弄清楚如何使用絕對導入從Python 3的同級目錄中導入模塊。

  1. 修改sys.path
  2. 通過__init__.pysetup.py將目錄轉換為pip可安裝的軟件包。

對於選項1,我想出了如何通過修改sys.path從同級目錄中導入模塊,但是這種方法對我來說似乎有點怪。 另外,我讀到它不是首選。 為什么? 修改sys.path有天生的錯誤或危險嗎?

對於選項2。我到底需要做什么才能使軟件包pip可安裝? 我已經創建了__init__.py文件,但似乎需要創建和配置setup.py腳本來准備要分發的程序包? 我仍處於開發模式,這真的是最好的/ pythonic方法嗎? 如果是這樣,那么在創建setup.py之后,我是否只需在終端中鍵入python setup.py install

編輯:我現在正試圖使用​​絕對導入來弄清楚這一點,因為python 3確實支持相對導入。

據我了解,Python 3不支持相對導入

是的

要從myproject/bar/baz.py導入myproject/foo/__init__.py myproject/bar/baz.py ,可以使用以下命令:

from .. import foo

或者,如果要在foo導入對象/模塊,請執行以下操作:

from ..foo import object

這要求myproject是一個包,因此myproject/__init__.py必須存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM