【问题标题】:PATH issue with PyPI package, can't seem to find a solutionPyPI 包的 PATH 问题,似乎找不到解决方案
【发布时间】:2020-06-07 04:44:24
【问题描述】:

我创建了一个简单的 Python 包并将其上传到 PyPI。我在setup.py 文件中添加了命令脚本,这样我就可以在任何时候使用我的终端运行程序。问题是,当我通过安装它时

pip3 install noty

键入noty 不起作用。 另一方面,使用sudo pip3 install noty 安装它就可以了。我知道这是一个 PATH 问题,但我似乎根本找不到解决方案。程序是否可以运行而无需使用 sudo 安装?这是该包的github链接: https://github.com/GrgBls/noty

【问题讨论】:

  • 运行pip3 install noty时是否出错?如果您输入echo $PATH,您当前看到了什么?我对 macOS 和 Linux 上的 Python 包使用 pyenvpyenv-virtualenv,以避免需要 sudo 并为所有用户安装包,这通常对上述内容有所帮助。
  • 完全没有错误
  • 在运行pip3 install noty 之后尝试运行export PATH=$HOME/.local/bin:$PATH,然后输入noty 看看是否有效?确保首先运行sudo pip3 uninstall noty 以避免重复安装。
  • 我猜在不使用sudo时,该软件包已安装在您的用户站点中,与运行pip3 install --user noty相同,请参阅参考:packaging.python.org/tutorials/installing-packages/…
  • 如果上述方法可行,您可以按照以下示例永久修复 PATH 问题:stackoverflow.com/questions/14637979/…

标签: python python-3.x path pip pypi


【解决方案1】:

当不使用 sudo 并使用操作系统附带的 Python 版本时,pip3 可能会将软件包安装到您的用户站点,因为它没有权限为所有用户全局安装软件包。这与使用pip3 install --user package 相同。

列出已安装在您的用户站点中~/.local 目录下的二进制文件:

ls ~/.local/bin

默认情况下,用户站点不会添加到您的PATH。要解决此问题,您可以将以下内容添加到您的 shell 初始化文件并重新加载配置:

export PATH=$HOME/.local/bin:$PATH

把它放在文件末尾的某个地方。

如果您不知道如何编辑配置,请参阅使用 Bash 时修改 shell 配置的示例: How to permanently set $PATH on Linux/Unix?

Python 打包文档中有关用户站点的更多信息: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-19
    • 2014-03-16
    • 2020-08-31
    • 2023-04-10
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    相关资源
    最近更新 更多