上下文
我目前正在运行 Gentoo 桌面,并希望在我的系统上进行适当的 Python 开发。
我尝试docker-compose
通过Gentoo的emerge系统安装一些软件包。由于docker-compose
依赖旧版本的模块requests
,我的系统更新变得繁琐且难以解决。
然后,我切换到pip
并遵循建议使用该--user
标志进行pip
安装,以避免与系统范围的工具/库发生冲突。我在这个用户级别安装docker-compose
,一切都很顺利,直到我将 Pipenv 添加到组合中以管理各个项目的依赖关系。 Pipenv 不喜欢该--user
标志,并且在文件中设置时pip.conf
将拒绝将依赖项安装到其virtualenv
.
进入正题...
我想要一种方法来隔离系统上所需的不同级别的 Python 包。我想保留由 Gentoo 工具设置的系统依赖项emerge
,有一个地方可以安装我希望主要用户能够访问的工具和库,最后还有一个地方可以存储我需要的库仅适用于特定项目。由于我的机器只有一个用户,因此我不太担心在用户之间共享“用户”依赖关系,而是确保我可以从任何目录访问它们。
我已经研究过virtualenv
s ,但是似乎这对于“每个项目”级别而不是“用户”级别更有效。据我所知,virtualenv
一次只能有一个处于活动状态,因此,如果我从我的主目录安装一个docker-compose
始终处于活动状态的工具,然后切换到项目的新工具,我将无法访问该工具和任何内容否则我已经安装到“用户”级别。virtualenv
virtualenv
docker-compose
virtualenv
简而言之,我有哪些选项来管理不同“级别”的 Python 依赖项?确保我不会践踏用户级别的系统依赖项和项目级别的用户依赖项的最佳实践是什么?如果你们真的这样做的话,你们会采取什么措施来安全地隔离这些不同的级别?
这是我的第一篇 stackexchange 帖子,所以如果我可以澄清或改进这个问题,请告诉我。我事先尝试过做研究,但感觉好像我做得不够。