簡體   English   中英

Python3從父目錄導入文件/相對導入

[英]Python3 importing files from parent directory / relative importing

我有以下文件結構:

parentfolder/
   utils.py
   myProgram/
      main.py
      other.py

我將運行 main.py,它利用 other.py,它需要利用 utils.py 中的所有內容(不只是一次從 utils.py 導入一個方法——在這個文件中有調用其他函數的全局變量和函數。 )

我已經使用 sys、path 等在線嘗試了很多不同的示例。除了在 none、some 和 all 目錄中添加__init__.py之外。 這些都不適合我。

go 如何在 other.py 中導入 utils.py?

如果我需要創建init .py 文件,您是否還可以指定需要創建它們的位置以及是否需要在其中放置任何內容? 我是否需要在第一次運行 main.py 之前運行一次它們?

非常感謝您提供的任何幫助

是的,您應該添加初始化文件,如下所示:

parentfolder/
   __init__.py
   utils.py
   myProgram/
      __init__.py
      main.py
      other.py

這些可以是空的或者更好地包含 package 內容的文檔字符串,但你不應該運行它們或任何東西

正確的方法是使用模塊路徑從 parentFolder 的父文件夾運行腳本:

$ cd parentfolder/..
$ python -m parentFolder.myProgram.main

這樣import utils語句將在沒有 sys.path hack 的情況下工作,這可能會導致細微的錯誤

暫無
暫無

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

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