【发布时间】:2011-12-24 06:26:42
【问题描述】:
假设我有一个名为 mypackage 的 python 包,其中包含一系列脚本。一旦 mypackage 在 site-packages 目录中,用户就可以像往常一样将 mypackage 中的各种 Python 文件称为 mypackage.submodule1 和 Python 中的 mypackage.submodule2。但是,其中一些是旨在从命令行调用的脚本。例如,在 submodule1 中,我有:
== mypackage/submodule1.py ==
if __name__ == '__main__':
main()
def main():
# parse command line options here, do stuff
如何正确分发/打包 mypackage,以便一旦“mypackage”在他们的路径中,用户可以干净地将这些子模块用作命令行脚本?我原以为你可以这样做:
python mypackage.submodule1.py arg1 arg2 ...
但此语法无效。换句话说,用户如何将我的包的子模块引用为脚本而不是从 Py 中导入它们,而不需要实际的“mypackage”目录位于他们的 PYTHONPATH 中? (只有包含“mypackage”的顶级目录,例如 site-packages 应该在它们的 PYTHONPATH 中。)
谢谢。
【问题讨论】:
标签: python module packages distutils pythonpath