Python 写的脚本分享给其他人,用 docker 还是 pyinstaller 还是 virtualenv?

2019-04-07 17:48:05 +08:00
 wyc9296
想写一个 windows Python 应用,用户们完全是编程小白(怎么安装 Python 模块都不会)。
**使用 virtualenv 最简单,直接写一个可以在开发环境用的 flask 网页就行。可是需要发送拷贝的东西太大,包括虚拟环境和 python 的文件夹。(注: 拷贝了这些文件夹之后得写个 exe 小程序把虚拟环境的进入目录修改下)。
**用 pyinstaller 的话需要写一个 GUI,也简单。但是界面比较丑,而且启动速度贼慢(因为需要以后自动更新应用版本,所以用-F 打包成一个文件)且没办法添加启动等待画面。
**用 docker 的话需要用户在他们电脑中安装 docker 桌面版,比较麻烦。而且之前我自己安装后重启蓝屏,重装系统才解决,万一搞挂了用户电脑就比较尴尬。
请大家帮我出出主意吧!
4477 次点击
所在节点    Python
23 条回复
Hopetree
2019-04-07 18:00:43 +08:00
能的话,尽力做成 web 服务,所有问题都解决
wyc9296
2019-04-07 18:14:46 +08:00
@Hopetree 还没申请到服务器呢。而且就是一个本地的小工具,如果要是给公司外部的客户用呢?
delectate
2019-04-07 18:28:13 +08:00
有丰富经验:pipenv
有一定经验:docker
没有任何经验:pyinstaller
不肯付钱:打死。
KnoDRy
2019-04-07 18:29:27 +08:00
面临同样的问题, 目前能考虑到的解决方案是用.bat 来搞, 不过目前效果不太好
dairoot
2019-04-07 18:32:19 +08:00
用 py2exe
tomczhen
2019-04-07 18:35:40 +08:00
帮前同事写过一个,给他女朋友做的工具。

PyInstaller 打包,不选单文件(太慢),然后自解压工具打个包,解压完桌面添加一个快捷方式。因为工具是处理图片的,所以只需要把要处理的图片往快捷方式上拖上去就行,文件路径会作为参数传到代码里。

本来说帮他写个 GUI 的,他说就这样就行了。
Yourshell
2019-04-07 18:42:11 +08:00
直接一个文件夹打包所有文件
wyc9296
2019-04-07 18:43:19 +08:00
@tomczhen 你是说把图片拖到快捷方式运行的 dos 窗口,还是有其他拖拽方法?另外哦,因为我后面需要它自动更新程序的版本,按照你的打包方法,在你打包好的文件夹里面有哪些必要文件需要更新?
Hopetree
2019-04-07 18:45:08 +08:00
@wyc9296 那就打包成 exe 吧,这种最无脑,虚拟环境和容器都要搞环境不适合给不会的人用
tomczhen
2019-04-07 18:45:47 +08:00
@wyc9296 直接文件拖到快捷方式上面就行,你可以试试创建一个 HTML 文件往浏览器快捷方式图标上拖过去。
wyc9296
2019-04-07 18:52:01 +08:00
@Hopetree 恩,各有利弊。虚拟环境的话我可以写个.bat ,自动进虚拟环境,然后在本机的浏览器打开开发环境的网页,超简单。唯一的缺陷就是东西太大了。
wyc9296
2019-04-07 18:52:27 +08:00
@tomczhen 哦,回头试一下
sdlearn
2019-04-07 20:18:05 +08:00
PyInstaller 用过,感觉挺省事的
tennc
2019-04-07 20:40:57 +08:00
用 c# 重写~~
wyc9296
2019-04-07 20:51:09 +08:00
@tomczhen 试过了,原来是这样,哈哈。然后,还是刚才的问题,如果我要让它自动更新版本,该替换哪些文件呢?
omph
2019-04-07 20:51:15 +08:00
跨平台小工具,python 不是个好选择
csharp/powershell
go
rust
XIVN1987
2019-04-07 20:52:22 +08:00
pyinstaller 还是靠谱的,,用过多次
qwjhb
2019-04-08 09:38:49 +08:00
pyinstaller 不一定要 gui 啊 做成 web 服务 exe 开启服务顺便打开个浏览器就好了,要更新的文件独立开就好
Northxw
2019-04-08 14:42:39 +08:00
如果是懂 Py 的,还是建个 env 吧,最后不管是放 Docker 还是服务器,都比较好
wyc9296
2019-04-08 16:26:08 +08:00
@qwjhb 具体怎么操作呢。我现在的想法是用 python socket 写个简单的开发环境用的 web server,然后用它运行 cgi 脚本;把这个脚本用 pyinstaller 打包成 exe,用户打开后自动运行 web server 并打开浏览器。不知道和你的想法是不是一样?或者我的想法有什么不对的地方?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/552730

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX