找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4809|回复: 5

[求助] 多个python文件封装成exe

12

主题

22

帖子

22

积分

贫民

积分
22
弹琴复长啸 发表于 2017-11-23 14:30:50 | 显示全部楼层 |阅读模式
求高手帮助:
我想利用pyInstaller或者任何Python打包工具,把多个py文件打包成exe文件;这些py文件中,有一个是main.py;它会调用其他的如a.py,b.py;同时这些py 文件会调用一些第三方库,如numpy之类的。我想把他们打包成一个exe,请教如何做?
其中main.py中调用其他py文件的方法是:subprocess.popen("python a.py %s%s%s%s"%(c,d,e,f))。
尝试过网上说的使用pyinstaller -F main.py a.py b.py;结果不行。
回复

使用道具 举报

12

主题

22

帖子

22

积分

贫民

积分
22
弹琴复长啸  楼主| 发表于 2017-11-23 14:42:24 | 显示全部楼层
我现在的解决方法是,先把a.py打包成a.exe;然后,使用subprocess.popen("a.exe %s%s%s%s"%(c,d,e,f));这样也可以运行,不过感觉比较麻烦。有没有更简单一点的方法
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2017-11-23 19:26:04 | 显示全部楼层
帮你顶吧, 对于这方面不太懂~~
回复 支持 反对

使用道具 举报

0

主题

7

帖子

7

积分

贫民

积分
7
vxcoder 发表于 2017-11-24 09:09:03 | 显示全部楼层
subprocess.popen 本质上就是调用不同程序,想要实现你的效果。你可以再写一个运行调度代码,这里根据不同参数,运行不同的代码。比如
  1. import sys

  2. import main
  3. import a
  4. import b

  5. if sys.argv[1] == 'a':
  6.     run(a)
  7. elif sys.argv[1] == 'b':
  8.    run(b)
  9. else:
  10.    run main()

复制代码

main里面的调用,subprocess调用通过参数来运行不同的程序
回复 支持 反对

使用道具 举报

12

主题

22

帖子

22

积分

贫民

积分
22
弹琴复长啸  楼主| 发表于 2017-11-24 11:27:45 | 显示全部楼层
vxcoder 发表于 2017-11-24 09:09
subprocess.popen 本质上就是调用不同程序,想要实现你的效果。你可以再写一个运行调度代码,这里根据不同 ...

你的意思是不是:main里面的subprocess模块调用这个运行调度代码,并且传个参数过来。那subprocess模块还是要使用popen来调用这个代码呀,这样还是不行啊!是我理解错了吗?
回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
RUIM 发表于 2018-6-21 15:48:08 | 显示全部楼层
请问这个问题解决了吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表