Pipenv是管理python环境的好工具。但是有些事情需要全球化。例如,大多数命令行工具应始终可用,并且jupyter可以与非python内核一起使用。
pipenv也可以用于管理这样的全局python环境吗?如果是这样,怎么办?这是理智的事情吗?
答案 0 :(得分:1)
在没有虚拟环境的情况下从Pipenv安装
我遇到了类似的问题-我需要在我们的生产服务器上全局安装依赖项。
我遇到了this discussion,这使我警惕了--system
选项。 pipenv install --system
全局安装依赖项。
仅全局安装一些依赖项
您的问题还有其他两个方面,我认为我也应该解决:
首先,您谈论的是全球范围内的“某些”事物。如果您有一些需要全局的依赖关系,而有些则需要在虚拟环境中的依赖关系,则可以将它们拆分为单独的Pipfile,并使用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。