首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将Python包安装到虚拟env中,并在普通shell中访问CLI命令

如何将Python包安装到虚拟env中,并在普通shell中访问CLI命令
EN

Stack Overflow用户
提问于 2017-03-31 09:25:11
回答 3查看 413关注 0票数 5

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
pip install csvkit

我的shell中有命令csvcutcsvlookcsvgrep和其他命令。但是,如果我不想在我的系统中安装cvskit并将其安装在虚拟环境中,比如在~/venvs/csvkit,那么只有在手动激活了环境csvkit之后,才有csvkit可用。

是否有一种方法来创建虚拟环境并在其中安装csvkit,以便像csvcut这样的命令在运行之前激活环境本身?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-09-11 06:50:33

一个更新的工具,仍然是非常好的维护是pipx -在独立环境中安装和运行Python应用程序。它的工作原理类似于pipsi:

  1. 首先安装pipx。(见pipx装置)
  2. 然后发行: pipx安装csvkit
  3. 最后,确保pipx的bin目录(通常是~/.local/bin)在您的路径中。

请注意,pipx有用于维护和检查生成的venvs的附加命令--请参阅pipx --help

票数 4
EN

Stack Overflow用户

发布于 2017-03-31 10:04:58

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

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

代码语言:javascript
代码运行次数:0
运行
复制
csvcut() {
    #do things with parameters like $1 such as
    source ~/venvs/csvkit/bin/activate
    csvcut $1 $2 $3 $4 $5
    deactivate
}

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

票数 0
EN

Stack Overflow用户

发布于 2017-12-21 01:41:55

使用pipsi。这里是来自项目的ReadMe的描述:

pipsi将每个包安装到~/..local/venvs/PKGNAME中,然后将所有新脚本符号链接到~/..local/bin(这些脚本可以分别由PIPSI_HOME和PIPSI_BIN_DIR env变量更改)。 与PKGNAME user相比,每个PKGNAME都安装在自己的虚拟环境中,因此您不必担心不同的PKGNAME具有冲突的依赖关系。

这对csvkit很有好处

  1. 首先安装pipsi
  2. 然后发行: pipsi安装csvkit
  3. 最后,确保pipsi的bin目录(通常是~/.local/bin)在您的路径中。

就这样!现在您可以在comamnd行上键入。

代码语言:javascript
代码运行次数:0
运行
复制
csvcut --help

它在自己的虚拟环境中调用csvcut

不需要手动激活virtualenv,而且您的系统Python不会受到额外包的污染(除了pipsi包之外)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43137114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档