簡體   English   中英

為 github 存儲庫配置本地 python package 導入的最佳實踐?

[英]Best practice for configuring local python package imports for github repo?

我對進口很陌生,所以我的方法可能不完整,但我真的很難拼湊出應該如何完成的工作。

所以我有一個 github repo 我正在處理,目前看起來像這樣:

Github-repo-name
   /src
      /repo-name
         __init__.py
         /packages
            __init__.py
            mypackage1/
               __init__.py
               p1_module1.py
            mypackage2/
               __init__.py
               p2_module1.py
         main.py
      /scripts
         do_something.py
      /datasets

我正在嘗試將 mypackage1 導入 do_something.py 以生成一些數據以放入 datasets/ 中,但是當我在src目錄中運行 do_something.py 腳本時遇到了很多麻煩。

我在 do_something.py 中有這一行:

import repo-name.packages.mypackage1

並且被擊中: ModuleNotFoundError:沒有名為 repo-name 的模塊

我嘗試了相對進口,但沒有成功

from ..repo-name.packages import mypackage1

ImportError:嘗試在沒有已知父 package 的情況下進行相對導入

我無法解決這個問題,所以我嘗試將我的包添加到 do_something.py 的路徑中

file_path = pathlib.Path(__file__)
path = file_path.resolve().parents[2]
sys.path.append(str(path))

import repo-name.packages.mypackage1

成功!

除了現在我想知道這是否真的是我應該做的,如果這不是有點 hacky。 需要在運行時添加路徑的想法似乎有點混亂,所以我寧願一直擁有它。 我已經讀過我可以使用 PYTHONPATH 來達到這個目的,如果只有我使用這個 repo 那就太好了,但我打算共享和復制它。 我想也許寫一個 shell 腳本來設置 PYTHONPATH 但我不確定這會好得多。

所以我的問題是做我想做的事情的正確/更好/好方法是什么?

奧利弗。
我不知道什么是最好的方法,但我想向您展示我們團隊的工作方式。

開發時,
i) 在~/.bashrc中注冊PYTHONPATH
ii) sys.path.append(path/to/root/repo)在代碼的頂部

我們的團隊通常將其作為初始方式。

要區分他們是否獲得repo的權限,您可以檢查以下內容。

# Suppose you created a setup.py(to make `.whl` file) on `repo-name`.
if __name__ == '__main__':
    from repo-name.packages.mypackage1 import *
else:
    from ..repo-name.packages.mypackage1 import *

暫無
暫無

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

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