![](/img/trans.png)
[英]how to create wheel package in python from the private git repo
[英]Python package in private repo with CLI utility - how to deploy, use, and structure
I've established a private github organization for common python repos - each repo is basically a unique python 3rd party package (like numpy for example) but that are homegrown. 這些將用於不同的項目。
目前,repos 只是源代碼包,沒有使用 Wheels 或 sdist 編譯發布 - 所以每個都有 setup.py 和庫的模塊/業務邏輯的目錄結構。 基本上回購看起來有點像這樣: https://packaging.python.org/tutorials/packaging-projects/
目前,我不想討論編譯版本或私有 PyPI 服務器。 我需要幫助/指導的是,如果它不僅是一個庫,而且還有一個 CLI 工具(使用該庫)。
我希望用戶做幾件事之一:克隆它,相應地設置 PYTHONPATH/PATH 並使用它,或者 package 和 pip 安裝它。 但是 CLI 工具應該包含在該存儲庫中還是外部? 怎么稱呼它(即 python -m )。
對我來說奇怪的是,軟件包似乎更適合真正的庫而不是庫+工具。 在我的思考過程中有什么幫助以及如何調用?
感謝@phd 幫我遛狗。
對於我的 package 項目,我定義了一個 setup.py(用 python 的說法代替 makefile),它定義了這個入口點:
setuptools.setup(
name="pkg_name", # Replace with your package name
version="0.0.1", # see pep 440
...
scripts=['bin/simple_cli.py'], # callable script to register (updates PATH)
...
)
現在在 package 項目本身中,基本結構如下,我將突出顯示bin/目錄:
$ tree -L 3
.
├── bin
│ └── simple_cli.py
├── contributing.md
├── LICENSE
├── makefile
├── pkg_name
│ ├── example_module.py
│ ├── __init__.py
├── README.md
├── requirements.txt
├── setup.py
└── tests
├── test_main.py
構建完成后(sdist、wheels 等),我們可以使用 pip 安裝。 我在虛擬環境中對此進行了測試,這里是 simple_cli.py 存在的地方:
上面的注釋有一些參考,但最終狀態是文件安裝在 venv bin/ 目錄中(可在 PATH 上使用激活的 venv)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.