我正在使用pyinstaller尝试创建可执行文件。我的项目结构是主项目中包含大约5-6个软件包,并且主项目是用__main__.py
文件编写的,因此可以用python -m module
称为模块。为了使它与pyinstaller一起使用,我编写了一个很小的包装器,该包装器位于模块上方的目录中,如下所示:
import runpy
def main():
module_name = 'myModule'
runpy.run_module(module_name, run_name='__main__')
if __name__=="__main__":
main()
我也在anaconda环境中进行开发,每个程序包都被编译成一个模块,然后包含在环境中并放入主项目中。当我在anaconda中运行此包装器时,该应用程序将打开。创建可执行文件pyinstaller时,它告诉我“没有名为myModule的模块”。
我的项目结构如下:
|containing folder/
|
|-- package1/
|-- package2/
| ...
|-- package6/
|
|-- main_application/
| |-- src/
| | |-- /myModule <--- main project module src here
| | | |-- __main__.py
| | | |
| | |-- run.py <--- wrapper file that runs everything