我想安装 Pipenv到一台机器上,以便该机器的所有用户都可以使用它,但我也不想弄乱系统 Python 设置。
我可以运行 sudo pip install pipenv 但这会继续并更改安装在系统 Python 中的一堆软件包的版本(我使用的是 Scientific Linux 7.4)。我宁愿让系统 Python 与我的 linux 发行版提供的完全一样(正如我所读到的那样,与系统 Python 混淆是一个坏主意,因为核心系统工具可能依赖于它以某种方式存在)。
我可以执行 pip install --user pipenv 但只有我的用户可以使用 pipenv。
所以两个问题:
<强> 1。我是否不必要地害怕修改系统 Python?在系统 Python 中更新包真的可以吗? 强>
<强>
2。如果我的谨慎是有道理的,那么在不修改系统 Python 的情况下为所有用户
pip install 东西(即 Pipenv 等工具)的最佳方法是什么?
强>
理想情况下,我希望用户能够通过键入 pipenv 来使用 pipenv,而不必执行位于模糊目录中的文件。
附言理想情况是 pipenv 可以作为我的发行版中的“安全”包使用,但遗憾的是它不是。我也知道 virtualenvs,但我的印象是它们更多地用于特定项目的开发和部署,不一定是系统范围工具的理想选择(尽管我准备好在这一点上得到纠正)。
请您参考如下方法:
不,您永远不会害怕修改系统 Python。你的谨慎是有道理的。
我建议您让所有用户共享一个全局(但非系统)Python 安装,可以来自官方发行版、Anaconda、pyenv 的 python-build 或自编译源。然后每个用户都可以执行他们自己的 pip install --user 到他们各自的主目录,或者您可以作为 sudoer,将他们全局可用的工具安装到自定义管理的非系统中,而是全局 Python。
编辑:我忘了说你也可以用虚拟环境和符号链接(symbolic link)来做这件事。 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 结合使用,让您更加安心。
