通常,仅当整个项目适合单个模块文件时,才将python软件包作为模块分发。如果您的项目比这更复杂,通常最好将项目构造为带有
__init__.py文件的程序包。这是您的项目转换成包后的样子
Project/|-- README|-- requirement.txt|-- setup.py|-- scripts/| |-- driver.py|-- driver/| |-- __init__.py| |-- module_1| | |-- __init__.py| | |-- class_1.py| | |-- class_2.py| |-- module_2| |-- |-- __init__.py| |-- |-- class_1.py| |-- |-- class_2.py
我将您重命名
run.py为
scripts/driver.py,以前使用的代码
driver.py现在是
driver/__init__.py。
你
setup.py应该看起来像这样
from setuptools import setup. find_packagessetup( name='driver', version='1.0', packages=find_packages(), scripts=['scripts/driver.py'],)
这将复制
scripts/driver.py到python
scripts目录。我重命名为
run.py,
driver.py因为
run它非常通用,并且您希望您的脚本名称是唯一的,因为所有python软件包都共享同一脚本位置。
或者,您可以使用
console_scripts入口点。在这种情况下,您将没有单独的
scripts/driver.py脚本。取而代之的是,您的包中只有一个函数。在这种情况下,您可以将所有代码
scripts/driver.py移入
driver/command_line.py并将其放入称为的函数中
main()。然后将您更改
setup.py为此
setup( name='driver', version='1.0', packages=find_packages(), entry_points = { 'console_scripts': ['driver=driver.command_line:main'], })
另外,您应该阅读有关python Packaging的此文档页面。它涵盖了基础知识和许多常见用例。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)