V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
wyc9296
V2EX  ›  Python

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

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

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

    本来说帮他写个 GUI 的,他说就这样就行了。
    Yourshell
        7
    Yourshell  
       2019-04-07 18:42:11 +08:00
    直接一个文件夹打包所有文件
    wyc9296
        8
    wyc9296  
    OP
       2019-04-07 18:43:19 +08:00 via Android
    @tomczhen 你是说把图片拖到快捷方式运行的 dos 窗口,还是有其他拖拽方法?另外哦,因为我后面需要它自动更新程序的版本,按照你的打包方法,在你打包好的文件夹里面有哪些必要文件需要更新?
    Hopetree
        9
    Hopetree  
       2019-04-07 18:45:08 +08:00
    @wyc9296 那就打包成 exe 吧,这种最无脑,虚拟环境和容器都要搞环境不适合给不会的人用
    tomczhen
        10
    tomczhen  
       2019-04-07 18:45:47 +08:00 via Android
    @wyc9296 直接文件拖到快捷方式上面就行,你可以试试创建一个 HTML 文件往浏览器快捷方式图标上拖过去。
    wyc9296
        11
    wyc9296  
    OP
       2019-04-07 18:52:01 +08:00 via Android
    @Hopetree 恩,各有利弊。虚拟环境的话我可以写个.bat ,自动进虚拟环境,然后在本机的浏览器打开开发环境的网页,超简单。唯一的缺陷就是东西太大了。
    wyc9296
        12
    wyc9296  
    OP
       2019-04-07 18:52:27 +08:00 via Android
    @tomczhen 哦,回头试一下
    sdlearn
        13
    sdlearn  
       2019-04-07 20:18:05 +08:00
    PyInstaller 用过,感觉挺省事的
    tennc
        14
    tennc  
       2019-04-07 20:40:57 +08:00   ❤️ 1
    用 c# 重写~~
    wyc9296
        15
    wyc9296  
    OP
       2019-04-07 20:51:09 +08:00 via Android
    @tomczhen 试过了,原来是这样,哈哈。然后,还是刚才的问题,如果我要让它自动更新版本,该替换哪些文件呢?
    omph
        16
    omph  
       2019-04-07 20:51:15 +08:00   ❤️ 1
    跨平台小工具,python 不是个好选择
    csharp/powershell
    go
    rust
    XIVN1987
        17
    XIVN1987  
       2019-04-07 20:52:22 +08:00
    pyinstaller 还是靠谱的,,用过多次
    qwjhb
        18
    qwjhb  
       2019-04-08 09:38:49 +08:00
    pyinstaller 不一定要 gui 啊 做成 web 服务 exe 开启服务顺便打开个浏览器就好了,要更新的文件独立开就好
    Northxw
        19
    Northxw  
       2019-04-08 14:42:39 +08:00
    如果是懂 Py 的,还是建个 env 吧,最后不管是放 Docker 还是服务器,都比较好
    wyc9296
        20
    wyc9296  
    OP
       2019-04-08 16:26:08 +08:00
    @qwjhb 具体怎么操作呢。我现在的想法是用 python socket 写个简单的开发环境用的 web server,然后用它运行 cgi 脚本;把这个脚本用 pyinstaller 打包成 exe,用户打开后自动运行 web server 并打开浏览器。不知道和你的想法是不是一样?或者我的想法有什么不对的地方?
    jeadong
        21
    jeadong  
       2019-04-08 16:59:16 +08:00
    看到有人说 bat, 年轻的码农可能以为是互联网公司,其实这个才是脚本的老师傅。
    话说我们新来的同事不懂 dos 命令不知道 bat 是啥... ,dir /b 这么好用的命令....
    jeadong
        22
    jeadong  
       2019-04-08 17:01:53 +08:00
    有一个问题我先说下,你有没有考虑过插件库需要更新升级版本的情况?
    我这次就碰到了,pyautogui 居然要在 pycharm 里更新下版本才能继续运行,否则找不到图片点不到按钮...我也不知道是怎么回事,反正 update install 后就好了。
    qwjhb
        23
    qwjhb  
       2019-04-08 17:42:26 +08:00
    我是打包个 flask 项目 url 对应命令 pyinstaller 打包的时候会把需要的库也打包进去的
    至于需要更新的地方,直接加载文本了=-= 虽然不安全 但是都自己用 无所谓了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2600 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 01:52 · PVG 09:52 · LAX 17:52 · JFK 20:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.