将Python入口点添加到本地APPDATA

问题描述 投票:0回答:1

我正在用Python编写一个命令行工具。对于 Windows 10 / 11 用户来说,安装和使用应该尽可能简单。我的目标是使以下程序有效:

  1. 从 Microsoft Store 安装 Python
  2. 使用
    pip install "C:\path\to\myprogram.zip"
  3. 安装我的程序
  4. 在 Windows cmd 中使用
    myprogram
    启动我的程序

目前,我有一个像这样的

setup.py

from setuptools import setup

setup(
    name="myprogram",
    # image additional arguments here
    entry_points={"console_scripts": ["myprogram=myprogram.module:function"]},
)

虚拟环境中一切都运行良好,但我不希望我的用户必须处理它们。我知道运行上面的

pip install ...
命令会将入口点(在我的例子中)安装到
C:\Users\myuser\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\Scripts
,这显然不在 Windows %PATH% 中。

所以我的问题来了:有可能吗

  1. 将脚本写入 Windows %PATH%s 之一(例如
    C:\Users\myuser\AppData\Local\Microsoft\WindowsApps
    )或
  2. C:\Users\myuser\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\Scripts
    添加到 Windows %PATH%?

我希望该解决方案能够直接从

setup.py
运行,这样就不需要额外的安装步骤。我完全意识到,找到一个在某种程度上不“hacky”的解决方案的机会很小。


解决方法: 截至目前,我正在使用 PyInstaller 构建可执行文件。

python windows-10 setuptools python-packaging windows-11
1个回答
0
投票

我建议您考虑使用基于 zipapp 的解决方案来分发您的程序,也许是 pexshiv。只要安装了 Python 解释器,它就应该可以正常工作。

在其文档页面上有有关在 Windows 上处理 zipapp 的详细信息。我建议确保

.pyz
扩展已正确配置为双击时执行,但您可能无法确保这一点。我相信还有其他方法可以在 Windows 上处理 zipapps/
.pyz
文件,您应该使用哪一种完全取决于用例的详细信息。


我建议探索的另一个可能的解决方案是pipx

© www.soinside.com 2019 - 2024. All rights reserved.