python:为什么用户脚本目录在 python 个版本之间共享?
python: why is user script directory shared across python versions?
来自PEP-370:
user script directory
A directory for binaries and scripts. [10] It's shared across Python versions and the destination directory for scripts.
Unix (including Mac)
~/.local/bin
Windows
%APPDATA%/Python/Scripts
为什么它建议特定于版本的用户站点目录而不是用户脚本目录?来自不同 python 版本的脚本不会相互冲突吗?
编辑。是的,他们会的。我用 python2-pytest
和 python3-pytest
做了一个测试。当使用 pip 将两者安装到用户目录时,一个 pytest
脚本在没有警告的情况下覆盖了另一个。
似乎有一个相关的 link 但它已经死了:
关于bin目录的讨论http://permalink.gmane.org/gmane.comp.python.devel/91095
shell 不支持每个 Python 版本的二进制文件。命令行可执行文件只有一个命名空间,使用在 PATH
上列出的目录中找到的第一个名称。
这里~/.local/bin
目录的意义在于它被添加到PATH
环境变量中,脚本和其他可执行文件放在那里供命令行使用。而且由于此类可执行文件只有一个命名空间,因此将命令放入此处的每个版本目录毫无意义。
相反,由项目为您提供版本化的可执行文件。 pip
项目在与 Python X.Y 一起安装时使用 setup.py
configuration 到 pip
、pipX
和 pipX.Y
脚本,因此您当有多个 Python 版本时,你总是会有一个更具体的脚本版本。您还可以将模块用作 pythonX.Y -m pip
的脚本。许多 Python 命令行工具都有类似的支持。
至于丢失的 GMane link(仍然是 available on the web archive); there are other archives of the Python-dev discussion still available, such as this grokbase.com rendering of the same post;那次讨论是关于将脚本放在哪个目录中,~/bin
或 ~/.local/bin
,并且从来没有关于每个 Python 版本的目录。
来自PEP-370:
user script directory
A directory for binaries and scripts. [10] It's shared across Python versions and the destination directory for scripts.
Unix (including Mac)
~/.local/bin
Windows
%APPDATA%/Python/Scripts
为什么它建议特定于版本的用户站点目录而不是用户脚本目录?来自不同 python 版本的脚本不会相互冲突吗?
编辑。是的,他们会的。我用 python2-pytest
和 python3-pytest
做了一个测试。当使用 pip 将两者安装到用户目录时,一个 pytest
脚本在没有警告的情况下覆盖了另一个。
似乎有一个相关的 link 但它已经死了:
关于bin目录的讨论http://permalink.gmane.org/gmane.comp.python.devel/91095
shell 不支持每个 Python 版本的二进制文件。命令行可执行文件只有一个命名空间,使用在 PATH
上列出的目录中找到的第一个名称。
这里~/.local/bin
目录的意义在于它被添加到PATH
环境变量中,脚本和其他可执行文件放在那里供命令行使用。而且由于此类可执行文件只有一个命名空间,因此将命令放入此处的每个版本目录毫无意义。
相反,由项目为您提供版本化的可执行文件。 pip
项目在与 Python X.Y 一起安装时使用 setup.py
configuration 到 pip
、pipX
和 pipX.Y
脚本,因此您当有多个 Python 版本时,你总是会有一个更具体的脚本版本。您还可以将模块用作 pythonX.Y -m pip
的脚本。许多 Python 命令行工具都有类似的支持。
至于丢失的 GMane link(仍然是 available on the web archive); there are other archives of the Python-dev discussion still available, such as this grokbase.com rendering of the same post;那次讨论是关于将脚本放在哪个目录中,~/bin
或 ~/.local/bin
,并且从来没有关于每个 Python 版本的目录。