使用可执行文件打包Python库
我刚刚完成了一个模块,想要打包它.我已经阅读了文档和这个问题packaging a python application,但是当我没有要导入的包但是要启动的脚本时,我不确定如何继续. 该项目看起来像这样:
为了启动我做的工具:
driver.py导入所有其他模块并定义Driver类和一些函数. run.py导入driver.py,解析参数,设置记录器并按其他方式调用函数来完成工作. 我不确定setup.py的配置,还需要根目录下的全局__init__.py吗?根据我的理解,我只能执行导入项目,不使用其参数启动脚本run.py. 从其他读数来看,也许我应该尝试告诉Driver.py是包并使用setup()的entry_points选项.但我不明白如何正确地完成所有这些工作. 谢谢你的热心帮助! 最佳答案
通常,当整个项目适合单个模块文件时,您只将python包作为模块分发.如果您的项目比这更复杂,通常最好将项目构造为包含__init__.py文件的包.这是您的项目看起来像转换为包的内容
我将run.py重命名为scripts / driver.py,而之前在driver.py中的代码现在是driver / __ init__.py. 你的setup.py应该是这样的
这会将scripts / driver.py复制到python Scripts目录.我将run.py重命名为driver.py,因为run非常通用,并且您希望脚本名称是唯一的,因为所有python包共享相同的脚本位置. 或者,您可以使用console_scripts入口点.在这种情况下,您将没有单独的scripts / driver.py脚本.相反,你只需要在你的包中有一个功能.在这种情况下,您可以将脚本/ driver.py中的所有代码移动到driver / command_line.py中,并将其放在名为main()的函数中.然后将setup.py更改为此
此外,您应该阅读this docs page on python packaging.它涵盖了基础知识和许多常见用例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |