pip install --user 表示用户无法从 Dash 或终端运行应用程序

pip install --user 表示用户无法从 Dash 或终端运行应用程序

我是一个 Python GUI 应用程序的开发人员。我希望我的应用程序的用户能够使用 pip 安装该应用程序,因为并非所有依赖项都已安装到 Debian 中,而且我预计这种情况短期内不会改变。

当然,PPA 是个好主意,但对我而言,这意味着从头开始为不是我自己的 Python 包创建 Debian 包,并且涉及我肯定不擅长的东西,例如 SWIG。

PPA 的下一个最佳替代方案是 Python 的 pip。而且它效果很好!所有最好的建议都说--user在运行时使用该选项pip install。pip 开发人员这么说,我的印象是 Ubuntu 实际上默认使用这个。

--user但是在 Ubuntu 上使用时我发现两个问题pip

  1. 应用程序可执行文件正在安装到~/.local/bin,与 Fedora 和其他一些发行版不同,它不在 Ubuntu 的默认路径上。(setup.py 使用 setuptools 的entry_points)。
  2. 由于某些无法解释的原因,即使.desktop文件位于 中~/.local/share/applications,应用程序也不会显示在 Dash 中,即使在注销后也是如此。不幸的是,~/.local/share/man/man1当用户从终端运行 man 时,安装到 的手册页也不会出现。

我可以要求 Ubuntu 用户创建一个~/bin目录并向我的应用程序添加符号链接~/.local/bin,但这并不能解决手册页的问题,也不能解决无法从 Dash 启动应用程序的问题。

我该如何建议我的用户最好地解决这些问题?

我建议用户安装的具体命令是python3 -m pip install --user foo-1.0.tar.gz

答案1

在 IRC 上与 Ubuntu 开发人员交谈后,我现在的理解是,Ubuntu 遵循 Debian 的做法,如果文件夹存在,它会将 ~/bin 添加到 PATH 中。目前没有计划对 ~/.local/bin 执行相同操作。因此,最终用户必须手动调整其路径,或添加符号链接等。作为一名应用程序开发人员,我想我需要一个针对 Ubuntu 和 Debian 用户的特殊安装脚本来执行其中的一些操作,这真是太可惜了,因为我确信这也会影响到其他所有依赖 pip 的 Python 应用程序开发人员。

相关内容