运行 来自 CLI 的 python 轮子,就好像它是单个脚本一样
Run a python wheel from CLI as if it were a single script
我希望制作一个 python 轮子作为 Azure Databricks 中的火花提交作业上传,但我无法验证我的轮子是否正常工作。我不明白轮盘调用在哪里或如何找到 __main__
方法。
如何构建包 and/or 在命令行上以 main 方法获取的方式调用 wheel 文件 运行?
下面是我正在尝试的一个简单的包;它所做的只是回显今天的日期。
我试过的一些命令 运行 脚本:
python dist/today-0.0.1-py3-none-any.whl/
python dist/today-0.0.1-py3-none-any.whl/__main__
python dist/today-0.0.1-py3-none-any.whl/main
我尝试了很多关于命名主文件 main.py
和 __main__.py
以及命名方法 main
或 __main__
的变体,但一切都给出了我同样的错误:
C:\Python391\python.exe: can't find '__main__' module in 'C:\<DIRECTORYPATH>\dist\today-0.0.1-py3-none-any.whl'
该包由一个空的 __init__.py
和 main.py
组成,看起来像:
import datetime
def main():
print(f'Today is {datetime.date.today()}')
if __name__ == '__main__':
main()
我的目录结构是:
Wheeltest
|-- setup.py
|-- today
|-- __init__.py
|-- __main__.py
我已经解压了 wheel 文件,可以确认它在文件夹 today
的顶层,里面有 2 个 py 文件。
我的 setup.py 文件看起来像这样(我也试过没有 entry_points 部分):
from setuptools import setup
from setuptools import find_packages
VERSION = '0.0.1'
DESCRIPTION = 'today package.'
LONG_DESCRIPTION = 'today dist.'
# Setting up
setup(
name='today',
version=VERSION,
author='Simon Norton',
author_email='<xxxxxxxx@yyyyy.com>',
description=DESCRIPTION,
long_description=LONG_DESCRIPTION,
packages=find_packages(),
entry_points={
'console_scripts': ['main=today.__main__:main']
},
classifiers=['Development Status :: Testing',
'Programming Language :: Python :: 3',
'Operating System :: Microsoft :: Windows',
'Operating System :: Linux']
)
非常感谢!
wheel 文件的路径必须包含 wheel 内的顶级文件夹才能找到 __main__
从我的示例中,顶级文件夹称为“today”:
C:\<DIRECTORYPATH>\dist\today-0.0.1-py3-none-any.whl\today
我希望制作一个 python 轮子作为 Azure Databricks 中的火花提交作业上传,但我无法验证我的轮子是否正常工作。我不明白轮盘调用在哪里或如何找到 __main__
方法。
如何构建包 and/or 在命令行上以 main 方法获取的方式调用 wheel 文件 运行?
下面是我正在尝试的一个简单的包;它所做的只是回显今天的日期。
我试过的一些命令 运行 脚本:
python dist/today-0.0.1-py3-none-any.whl/
python dist/today-0.0.1-py3-none-any.whl/__main__
python dist/today-0.0.1-py3-none-any.whl/main
我尝试了很多关于命名主文件 main.py
和 __main__.py
以及命名方法 main
或 __main__
的变体,但一切都给出了我同样的错误:
C:\Python391\python.exe: can't find '__main__' module in 'C:\<DIRECTORYPATH>\dist\today-0.0.1-py3-none-any.whl'
该包由一个空的 __init__.py
和 main.py
组成,看起来像:
import datetime
def main():
print(f'Today is {datetime.date.today()}')
if __name__ == '__main__':
main()
我的目录结构是:
Wheeltest
|-- setup.py
|-- today
|-- __init__.py
|-- __main__.py
我已经解压了 wheel 文件,可以确认它在文件夹 today
的顶层,里面有 2 个 py 文件。
我的 setup.py 文件看起来像这样(我也试过没有 entry_points 部分):
from setuptools import setup
from setuptools import find_packages
VERSION = '0.0.1'
DESCRIPTION = 'today package.'
LONG_DESCRIPTION = 'today dist.'
# Setting up
setup(
name='today',
version=VERSION,
author='Simon Norton',
author_email='<xxxxxxxx@yyyyy.com>',
description=DESCRIPTION,
long_description=LONG_DESCRIPTION,
packages=find_packages(),
entry_points={
'console_scripts': ['main=today.__main__:main']
},
classifiers=['Development Status :: Testing',
'Programming Language :: Python :: 3',
'Operating System :: Microsoft :: Windows',
'Operating System :: Linux']
)
非常感谢!
wheel 文件的路径必须包含 wheel 内的顶级文件夹才能找到 __main__
从我的示例中,顶级文件夹称为“today”:
C:\<DIRECTORYPATH>\dist\today-0.0.1-py3-none-any.whl\today