如何将Python包pip-install到虚拟环境中,并在普通shell中访问CLI命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将Python包pip-install到虚拟环境中,并在普通shell中访问CLI命令相关的知识,希望对你有一定的参考价值。

对于可能干扰其他软件包的较大Python软件包,建议将它们安装到自己的虚拟环境中,一些Python软件包将CLI命令暴露给shell。

有没有办法将这样的软件包安装到自己的虚拟环境中,但是可以从普通shell访问CLI命令而无需事先手动切换到此虚拟环境?

这里有一个例子:当我安装csvkit

pip install csvkit

我有命令csvcutcsvlookcsvgrep和我的shell中提供的其他命令。但是,如果我不想在我的System-Python中安装cvskit并将其安装在虚拟环境中,比如在~/venvs/csvkit,我只有在手动激活环境csvkit时才能使用csvkit。

有没有办法创建虚拟环境并在其中安装csvkit,以便像csvcut这样的命令在运行之前自己激活环境?

答案

您可以创建别名,例如csvcut并将它们指向source ~/venvs/csvkit/bin/activate && csvcut && source deactivate

如果此程序接受参数,您可以使用函数并在.bashrc文件中定义:

csvcut() {
    #do things with parameters like $1 such as
    source ~/venvs/csvkit/bin/activate
    csvcut $1 $2 $3 $4 $5
    deactivate
}

要调用该函数,只需使用csvcut <your_parameter>命令。

另一答案

使用pipsi。这里是项目自述文件的描述:

pipsi将每个包安装到〜/ .local / venvs / PKGNAME中,然后将所有新脚本符号链接到〜/ .local / bin(这些脚本可分别由PIPSI_HOME和PIPSI_BIN_DIR env变量更改)。

与pip install相比--user每个PKGNAME都安装在自己的virtualenv中,因此您不必担心具有冲突依赖关系的不同PKGNAMEs。

它适用于csvkit

  1. 首先安装pipsi
  2. 然后发出: pipsi install csvkit
  3. 最后确保pipsi的bin目录(通常是~/.local/bin)在你的PATH中。

而已!现在您可以输入命令行,例如

csvcut --help

在自己的virtualenv中称csvcut

没有必要手动激活virtualenv,你的系统Python不会被其他软件包污染(除了pipsi软件包一劳永逸)。

以上是关于如何将Python包pip-install到虚拟环境中,并在普通shell中访问CLI命令的主要内容,如果未能解决你的问题,请参考以下文章

PyCharm虚拟环(Project Interpreter)手动安装第三方包图解教程

如何将 python 模块从源代码安装到虚拟环境中

python 虚拟环境与包安装

python基础:python扩展包的安装方式

关于 python 中 虚拟环 virtualen境的操作

虚拟环境