为所有用户安装python包,而不影响系统python安装

为所有用户安装python包,而不影响系统python安装,python,pipenv,Python,Pipenv,我想安装到一台机器上,以便该机器的所有用户都可以使用它,但我也不想弄乱系统Python设置 我可以运行sudo-pip-install-pipenv,但这会改变Python系统中安装的一系列软件包的版本(我使用的是Scientific Linux 7.4)。我宁愿让系统Python与我的linux发行版完全一样(正如我所读到的,混用系统Python是一个坏主意,因为核心系统工具可能依赖于某种方式) 我可以执行pip安装--user pipenv,但是只有我的用户可以使用pipenv 所以有两个问

我想安装到一台机器上,以便该机器的所有用户都可以使用它,但我也不想弄乱系统Python设置

我可以运行
sudo-pip-install-pipenv
,但这会改变Python系统中安装的一系列软件包的版本(我使用的是Scientific Linux 7.4)。我宁愿让系统Python与我的linux发行版完全一样(正如我所读到的,混用系统Python是一个坏主意,因为核心系统工具可能依赖于某种方式)

我可以执行
pip安装--user pipenv
,但是只有我的用户可以使用pipenv

所以有两个问题:

1。我是否不必要地害怕修改Python系统?在Python系统中更新软件包实际上可以吗?

2。如果我的警告是正确的,那么在不修改系统Python的情况下为所有用户安装
pip
东西(如Pipenv之类的工具)的最佳方法是什么?

理想情况下,我希望用户能够通过键入
pipenv
来使用pipenv,而不必执行位于模糊目录中的文件


另外,理想的情况是pipenv可以作为“安全”软件包从我的发行版中获得,但可惜不是这样。我也知道VirtualNV,但我的印象是,它们更适合于特定项目的开发和部署,不一定适合于系统范围的工具(尽管我准备对此进行更正)。

不,您永远不会太害怕修改系统Python。你的谨慎是有道理的

我建议您让所有用户共享一个全局(但非系统)Python安装,无论是从官方发行版、Anaconda、pyenv的Python构建还是自编译源代码。然后,每个用户都可以在各自的主目录中执行自己的
pip安装--user
,或者作为sudoer,您可以将全局可用的工具安装到自定义管理、非系统但全局的Python中


编辑:我忘了提到,您也可以使用虚拟环境和符号链接来执行此操作。Pipenv示例(您可以根据自己的喜好更改路径):


这种方法可以安装多个工具,而不会相互影响。此外,您还可以将其与自定义托管Python结合使用,以获得更大的安心。

一定要使用Anaconda,并查看其有关如何使用conda环境的文档。另一个优点是,您可以将您的环境带到任何机器上使用,这使得在您的开发工作流中记录软件包版本变得更加容易和清晰。享受吧

我发现Anaconda是一个很好的解决方案,因为它存在于用户空间中,您/其他用户可以安装您想要的任何东西,而不会影响系统Python。谢谢您,您的第一个建议就是我最后要做的。我从IUS repo安装了python36和python36 pip,并且能够愉快地将pipenv安装到其中,而不会影响Python系统。如果我有更多的工具要安装,你的虚拟环境建议似乎是个好主意。
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