[英]How can I use setuptools to generate a console_scripts entry point which calls `python -m mypackage`?
我正努力成為一名優秀的Pythonista使用者,並按照我打算部署的PEP 338進行安裝。
我還嘗試使用setuptools entry_points{'console_scripts': ... }
選項在python setuptools install
時生成可執行腳本。
如何使用entry_points生成調用python -m mypackage
的二進制文件(並傳遞* args,** kwargs)?
這是我沒有成功的一些嘗試:
setuptools(
...
(1)
entry_points=
{'console_scripts': ['mypkg=mypkg.__main__'],},
(2)
entry_points=
{'console_scripts': ['mypkg=mypkg.main'],},
(3)
entry_points=
{'console_scripts': ['mypkg=python -m mypkg'],},
我一直在使用的主要資源:
如何使用entry_points生成調用python -m mypackage的二進制文件(並傳遞* args,** kwargs)?
我認為這是解決問題的錯誤方法。 您不希望腳本調用python -m mypackage
,但希望腳本具有與python -m mypackage
相同的入口點
考慮以下簡單示例:
script_proj/
├── script_proj
│ ├── __init__.py
│ └── __main__.py
└── setup.py
和簡約的setup.py:
from setuptools import setup
setup(
name="script_proj",
packages=["script_proj"],
entry_points = {
"console_scripts": [
"myscript = script_proj.__main__:main",
]
}
)
__main__.py
是一個虛擬模塊,包含main
方法。
def main():
print("Hello world!")
if __name__ == "__main__":
main()
安裝后,您將擁有可執行的myscript
,它將在__main__.py
調用main
方法。 在此包裝設計中, python -m script_proj
也調用相同的main
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.