美文网首页我爱编程
py2app打包selenium自动化脚本

py2app打包selenium自动化脚本

作者: lilith买买买 | 来源:发表于2018-05-17 15:18 被阅读420次

    python+selenium写了个自动化脚本,想打包成app方便给别人用,记录下遇到的问题。

    py2applet --make-setup gp.py
    

    gp.py是我的代码文件,会生成一个setup.py文件,根据自己的需求改。
    1.依赖包要加,如'packages': ['selenium', 'lxml']
    2.加图标'iconfile': 'app.icns',
    3.因为我用到了chromedriver,所以把chromedriver的位置写到DATA_FILES 里,不然会报Message: 'chromedriver' executable needs to be in PATH。其他依赖文件也写到DATA_FILES里。

    """
    This is a setup.py script generated by py2applet
    
    Usage:
        python setup.py py2app
    """
    
    from setuptools import setup
    import os
    driver_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'chromedriver')
    
    APP = ['gp.py']
    DATA_FILES = [driver_path]
    OPTIONS = {
        'argv_emulation': True,
        'iconfile': 'app.icns',
        'packages': ['selenium', 'lxml']
    }
    
    setup(
        app=APP,
        data_files=DATA_FILES,
        options={'py2app': OPTIONS},
        setup_requires=['py2app'],
    )
    
    

    python setup.py py2app

    会生成dist和build文件夹,app在dist文件夹里。双击运行生成的app,异常退出了。

    生成的app

    右键单击这个app,选择显示包内容,可以看到Contents文件夹,点进去,看到如下文件。

    Contents里面的内容

    进到MacOS,双击运行一下gp,错误提示又来了:'chromedriver' executable may have wrong permissions。好了知道是权限问题了,找一下打包后'chromedriver' 被放哪里了。

    MacOS文件夹

    在前面的Resources文件夹里找到了,给他一个执行权限,好了好了完美。

    sudo chmod +x ../dist/gp.app/Contents/Resources/chromedriver

    Resources文件夹

    相关文章

      网友评论

        本文标题:py2app打包selenium自动化脚本

        本文链接:https://www.haomeiwen.com/subject/gymbdftx.html