Pipenv 是管理 python 环境的好工具。但有些事情需要是全局性的。例如,大多数命令行工具应该始终可用,jupyter 应该与非 python 内核一起使用。
pipenv 也可以用来管理这样一个全局的 python 环境吗?如果是这样,如何?这是理智的做法吗?
最佳答案
在没有虚拟环境的情况下从 Pipenv 安装
我遇到了与您类似的问题 - 我需要在我们的生产服务器上全局安装依赖项。
我遇到了 this discussion这提醒我 --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
另一种选择:pipsi
其次,你会问“这是明智的做法吗?”我认为通常将 Pipenv 用于全局依赖项是明智的,但对于命令行工具的用例,我会使用 pipsi . Pipsi 在全局范围内安装库,但彼此隔离(有关更多详细信息,请参见链接)。但是,我认为它没有提供使用需求文件 ( ref ) 的方法。
对于一些关于 Python 设置和依赖项的一般阅读,我强烈推荐 Jacob Kaplan-Moss 的文章 My Python Development Environment, 2018 Edition .
关于python - Pipenv 全局环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51554241/