为所有用户安装一个 python 包而不干扰系统 python 安装
Install a python package for all users without messing with the system python installation
我想将 Pipenv 安装到一台机器上,以便该机器的所有用户都可以使用它,但我也不想弄乱系统 Python 设置。
我可以 运行 sudo pip install pipenv
但这会继续并更改系统中安装的一堆软件包的版本 Python (我正在使用 Scientific Linux 7.4 ).我宁愿让系统 Python 与我的 linux 发行版提供的完全一样(正如我所读到的那样,弄乱系统 Python 是一个坏主意,因为核心系统工具可能依赖于它某种方式)。
我可以 pip install --user pipenv
但只有我的用户可以使用 pipenv。
所以两个问题:
1.我是否不必要地害怕修改系统 Python?在系统内更新包真的可以吗Python?
2。如果我的谨慎是有道理的,那么在不修改系统的情况下为所有用户 pip install
东西(即 Pipenv 等工具)的最佳方法是什么 Python?
理想情况下,我希望用户能够通过键入 pipenv
来使用 pipenv,而不必执行位于模糊目录中的文件。
P.S。理想的情况是 pipenv 在我的发行版中作为 'safe' 软件包提供,但遗憾的是它不是。我也知道 virtualenvs,但我的印象是它们更多地用于特定项目的开发和部署,不一定是系统范围工具的理想选择(尽管我准备对此进行纠正)。
不,你永远不会害怕修改系统Python。你的谨慎是有道理的。
我建议你让所有用户共享一个全局(但非系统)Python 安装,可以来自官方发行版、Anaconda、pyenv 的 python-build,也可以是自编译的资源。然后每个用户都可以对各自的主目录执行他们自己的 pip install --user
,或者您可以作为 sudoer,将他们全局可用的工具安装到自定义管理的非系统但全局的 Python.
编辑:我忘了提到您也可以使用虚拟环境和符号链接来执行此操作。 Pipenv 示例(您可以根据需要更改路径):
python3 -m venv /opt/venvs/pipenv
/opt/venvs/pipenv/bin/pip install pipenv
ln -s /opt/venvs/pipenv/bin/pipenv /opt/bin/pipenv
python3 -m venv /opt/venvs/flake8
/opt/venvs/pipenv/bin/pip install flake8
ln -s /opt/venvs/pipenv/bin/flake8 /opt/bin/flake8
这种方式可以安装多个工具而不会相互影响。您还可以将其与自定义管理的 Python 结合使用,让您更加安心。
绝对使用 Anaconda 并查看其文档以了解如何使用 conda 环境。另一个优点是您可以随身携带您的环境以在任何机器上使用,这使得在您的开发工作流程中记录包版本变得更加容易和清晰。享受吧!
我想将 Pipenv 安装到一台机器上,以便该机器的所有用户都可以使用它,但我也不想弄乱系统 Python 设置。
我可以 运行 sudo pip install pipenv
但这会继续并更改系统中安装的一堆软件包的版本 Python (我正在使用 Scientific Linux 7.4 ).我宁愿让系统 Python 与我的 linux 发行版提供的完全一样(正如我所读到的那样,弄乱系统 Python 是一个坏主意,因为核心系统工具可能依赖于它某种方式)。
我可以 pip install --user pipenv
但只有我的用户可以使用 pipenv。
所以两个问题:
1.我是否不必要地害怕修改系统 Python?在系统内更新包真的可以吗Python?
2。如果我的谨慎是有道理的,那么在不修改系统的情况下为所有用户 pip install
东西(即 Pipenv 等工具)的最佳方法是什么 Python?
理想情况下,我希望用户能够通过键入 pipenv
来使用 pipenv,而不必执行位于模糊目录中的文件。
P.S。理想的情况是 pipenv 在我的发行版中作为 'safe' 软件包提供,但遗憾的是它不是。我也知道 virtualenvs,但我的印象是它们更多地用于特定项目的开发和部署,不一定是系统范围工具的理想选择(尽管我准备对此进行纠正)。
不,你永远不会害怕修改系统Python。你的谨慎是有道理的。
我建议你让所有用户共享一个全局(但非系统)Python 安装,可以来自官方发行版、Anaconda、pyenv 的 python-build,也可以是自编译的资源。然后每个用户都可以对各自的主目录执行他们自己的 pip install --user
,或者您可以作为 sudoer,将他们全局可用的工具安装到自定义管理的非系统但全局的 Python.
编辑:我忘了提到您也可以使用虚拟环境和符号链接来执行此操作。 Pipenv 示例(您可以根据需要更改路径):
python3 -m venv /opt/venvs/pipenv
/opt/venvs/pipenv/bin/pip install pipenv
ln -s /opt/venvs/pipenv/bin/pipenv /opt/bin/pipenv
python3 -m venv /opt/venvs/flake8
/opt/venvs/pipenv/bin/pip install flake8
ln -s /opt/venvs/pipenv/bin/flake8 /opt/bin/flake8
这种方式可以安装多个工具而不会相互影响。您还可以将其与自定义管理的 Python 结合使用,让您更加安心。
绝对使用 Anaconda 并查看其文档以了解如何使用 conda 环境。另一个优点是您可以随身携带您的环境以在任何机器上使用,这使得在您的开发工作流程中记录包版本变得更加容易和清晰。享受吧!