V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
th3m0m3nt
V2EX  ›  问与答

用 py2exe 打包个 Python 程序,手动运行正常, 在注册表自启动就总报错。

  •  
  •   th3m0m3nt · 2017-03-28 10:14:02 +08:00 · 2056 次点击
    这是一个创建于 2801 天前的主题,其中的信息可能已经有所发展或是发生改变。

    boss 对办公终端上有个小需求,可咱是混 linux 的,只好拿 python 实现后拿 py2exe 打包吧。 测试什么的都正常。手工执行也没问题, 但 boss 要求开机启动, 于是丢注册表呗, 然而问题来了, 不管扔 current_user 还是 LOCAL_MACHINE , 都给个报错:

    Traceback (most recent call last):
      File "<install zipextimporter>", line 1, in <module>
    ImportError: No module named zipextimporter
    Traceback (most recent call last):
      File "getinfo.pyw", line 3, in <module>
    ImportError: No module named os
    
    

    google 上爬了半天还是一头雾水, 听说这里大神多, 特来请教。 我个人分析可能是权限问题? 注册表启动的程序以 system 权限执行, 人工执行则是当前用户。 另外这个问题目前暂时解决了, 就是把程序丢到 All Users 的启动目录下, 倒是正常了。 但我还是很好奇为什么注册表不行呢?

    10 条回复    2017-04-01 16:42:55 +08:00
    owlsec
        1
    owlsec  
       2017-03-28 10:56:52 +08:00
    No module named os
    owlsec
        2
    owlsec  
       2017-03-28 10:57:08 +08:00
    没编辑完发出去了。。。。
    owlsec
        3
    owlsec  
       2017-03-28 10:57:45 +08:00
    楼主检查下你的 os 包和 zipextimporter 包有没有一起打包进去。
    th3m0m3nt
        4
    th3m0m3nt  
    OP
       2017-03-28 11:23:48 +08:00
    @owlsec 肯定打包进去了啊,手工执行及启动目录都正常运行的。
    chairchan
        5
    chairchan  
       2017-03-28 12:35:01 +08:00 via Android
    要不试试 pyinstaller?
    Osk
        6
    Osk  
       2017-03-28 12:41:56 +08:00 via Android
    单文件还是一个目录?
    多个文件得注意 起始目录

    可以试试在 exe 上点击右键创建快捷方式,把快捷方式放在 开始菜单>启动 里面自启。
    th3m0m3nt
        7
    th3m0m3nt  
    OP
       2017-03-28 13:09:04 +08:00
    补充一下,是打包成了一个文件 , 打包参数如下:
    ```
    options={"py2exe":{
    "bundle_files": 1,
    "compressed": 1,
    "optimize": 2
    }
    }
    setup(options=options,
    zipfile=None,
    windows=[{'script' : 'getinfo.pyw',
    'name' : 'osinfo',
    'version' : '0.1'}])
    ```
    wonpn
        8
    wonpn  
       2017-03-28 13:36:58 +08:00 via Android
    搞个快捷方式,拖到开机自启目录…
    th3m0m3nt
        9
    th3m0m3nt  
    OP
       2017-03-28 15:22:57 +08:00
    @wonpn 开机启动的问题已经解决了, 现在是想探究注册表出错的原因
    linhaolun33
        10
    linhaolun33  
       2017-04-01 16:42:55 +08:00
    我是新手 我们 BOSS 跟你们 BOSS 一样 也要搞个桌面程序 要搞开机启动 我 python 很弱 不知道怎么实现 能否给我看下开机启动代码 谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2882 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:10 · PVG 23:10 · LAX 07:10 · JFK 10:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.