簡體   English   中英

將內部模塊導入python中的另一個子目錄的最佳做法是什么?

[英]What is best practice for importing internal modules to another subdirectory in python?

我目前有一個結構如下的項目文件夾

Project/ 
    main.py
    .gitignore
    .env
    requirements.txt
    reports/
        report1.py
        report2.py
    utils/
        __init__.py
        support_functions.py

對於這個程序,我不是想運行一個 main 函數。 我有幾個每周/每月運行一次的報告,並且直接從其文件中運行它們。 我在從 utils 模塊導入函數時遇到了很多麻煩 - 但是,我確實找到了堆棧溢出的解決方法,它本質上是將文件夾添加到路徑

import sys
sys.path.append('/Project/utils')
import support_functions

但是,我不喜歡這種解決方法,因為它使用絕對路徑,並且在我切換計算機/操作系統/環境時不起作用。 所以我的主要問題是在大型項目中如何處理? 即使我使用“正確”結構並運行主要功能,我也遇到了其他幾個我想這樣做的場景。

  1. 一個測試文件夾,它將從另一個模塊導入函數進行測試
  2. 我想從另一個內部模塊導入函數或類的任何情況
  3. 這在python中不常見嗎? 我是否遺漏了一些關於建築的明顯內容?

我終於找到了答案。

解決方案:編輯您的 settings.json

"terminal.integrated.env.osx": {"PYTHONPATH": "${workspaceFolder}"}

注意 - osx 在這些操作系統上需要更改為“linux”或“windows”。

可以“使用 PYTHONPATH 變量”部分下找到有關問題和解決方案的文檔。

有其他解決方案可以通過將 PYTHONPATH 設置在 .env 中,然后在 settings.json 中指向它來更改 PYTHONPATH,但是,它們都不適合我。 解決方案最終是讓 VScode 將 PYTHONPPATH 指向當前工作目錄,這是在 Pycharm 中自動完成的。

暫無
暫無

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

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