【问题标题】:Setup.py with py2app including pip packages带有 py2app 的 Setup.py,包括 pip 包
【发布时间】:2019-11-28 15:24:21
【问题描述】:

我在 python 中构建了一个键盘记录器,并使用 py2exe(0.13 版)将 python 文件转换为 exe。它工作得很好,它包括所有的包和一切。

我希望我的键盘记录器也能进入 mac,所以我尝试使用 py2app。我关注了 TheBlackBerryChannels tutorial。很好地解释了所有内容,但没有显示如何安装从 pip 安装的外部软件包。因为我使用from pynput.keyboard import Key, Listener import os import datetime from pathlib import Path 来自 pip 的软件包。

在完整的 setup.py 文件中,这就是我所拥有的:

from setuptools import setup

APP = ['KeyLoggingMac.py']
OPTIONS = {
# 'iconfile':'logoapp.icns',
 'argv_emulation': True,
 'packages': ['pynput']
}

setup(
    app=APP,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

我做错了什么?它不包含pynput 包,我认为它会自动包含os, datetime, and pathLib 模块,但为什么不包含pynput

【问题讨论】:

    标签: python python-3.x py2app


    【解决方案1】:

    为简单起见,在您的主文件中导入如下:

    from pynput import keyboard
    

    然后在您的设置文件中使用 OPTIONS 中的“包含”,注意我还添加了数据文件 test.txt 以将按键写入文件:

    from setuptools import setup
    
    APP = ['TEST.py']
    DATA_FILES = ['test.txt']
    OPTIONS = {'includes': ['pynput']}
    
    setup(
        app=APP,
        data_files=DATA_FILES,
        options={'py2app': OPTIONS},
        setup_requires=['py2app'],
    )
    

    然后从您的 venv 使用终端命令运行 py2app:

    python setup.py py2app
    

    您也可以使用 py2applet 生成 setup.py 文件,但我发现它永远无法正常工作。

    py2applet --make-setup FILENAME.py
    

    您还需要授予应用访问全局键盘事件的权限。这是在首选项 > 安全和隐私 > 隐私中完成的

    在 Mojave 之前,您需要 Accessibility 选项卡,然后在其中添加您的应用,在 Catalina 上您需要 Input Monitoring。

    这对我有用。

    【讨论】:

      猜你喜欢
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 2011-01-13
      • 1970-01-01
      • 2016-04-02
      • 2017-07-31
      • 2019-04-07
      相关资源
      最近更新 更多