我正在开发一个独立的 Python-GUI 程序。当我运行时
python3 setup.py sdist
我收到以下警告:
package init file 'main-application-folder/__init__.py' not found (or not a regular file)
此警告仅适用于包,还是独立的 Python 程序也应该有 __init__.py
而不是类似 main-window.py
或my-first-program.py
?
我应该重命名我的主文件(在我的例子中 ìbk-st.py
到 __init__.py
)还是保留 __init__.py
中的特定结构会更好吗? (即创建一个单独的文件来调用 ibk-st.py
文件)
项目链接:
最佳答案
您应该将 ibk-st
重命名为 python 的有效包标识符(也许是 ibk_st
);然后将 ibk-st.py 写入类似 main_ui.py 的内容;然后为整个包创建一个 __init__.py
(或者您可以将 ibk-st.py
重命名为 __init__.py
)。
请注意setup.py
can install command line scripts ;您可以提供一个薄包装器作为文件 bin/ibk-st-ui
及其内容
#!/usr/bin/env python
from ibk_st.main_ui import main
main()
模块安装将确保脚本可以在用户使用的任何平台上运行。
然后在你的setup.py
中你应该有
...
packages = [ 'ibk_st' ],
scripts=[ 'bin/ibk-st-ui' ],
...
现在,当您运行setup.py install
或安装软件包时,模块可以嵌入到其他程序和命令ibk-st-ui
将安装在 bin
文件夹中(无论是 virtualenv 的 bin
还是系统 /usr/local/bin
),可以运行 UI。
关于python - 如果我想构建一个独立的程序而不是一个包,我是否需要 __init__.py ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28613439/