假设我有一个名为 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 中。)
谢谢。