Pipenv 是管理 Python 环境的好工具。但有些事情需要全球化。例如,大多数命令行工具应该始终可用,并且 jupyter 应与非 python 内核一起使用。
pipenv 也可以用于管理这样的全局 python 环境吗?如果是这样,如何?这是明智的做法吗?
在没有虚拟环境的情况下从 Pipenv 安装
我遇到了与您类似的问题 - 我需要在我们的生产服务器上全局安装依赖项。
我遇到了这个讨论,它提醒我这个--system选项。 pipenv install --system全局安装依赖项。
仅全局安装一些依赖项
您的问题还有其他几个方面,我认为我也应该解决:
首先,您谈论“某些”事物是全球性的。如果您有一些需要全局的依赖项和一些需要在虚拟环境中的依赖项,您可以将它们拆分为单独的 Pipfiles 并使用PIPENV_PIPFILE环境变量。例如:
# Install your global deps from a separate file
$ PIPENV_PIPFILE="/path/to/global/deps/Pipfile" pipenv install --system
# Use your local Pipfile for the project-specific deps (in a virtual environment as normal)
$ pipenv install
Run Code Online (Sandbox Code Playgroud)
另一种选择:pipi
其次,你会问“这是一件理智的事情吗?” 我认为一般来说将 Pipenv 用于全局依赖是明智的,但是对于命令行工具的用例,我会使用pipsi。Pipsi 全局安装库,但彼此隔离(有关更多详细信息,请参阅链接)。但是,我认为它没有提供使用需求文件 ( ref ) 的方法。
对于一些关于 Python 设置和依赖项的一般性阅读,我真的推荐 Jacob Kaplan-Moss 的文章我的 Python 开发环境,2018 版。