无法找到mkvirtualenv,但可以执行它

时间:2016-01-22 16:35:23

标签: python linux bash terminal virtualenv

我试图从bash脚本中运行mkvirtualenv,并且我一直被告知无法找到它 - 但似乎我的系统可以'弥补它是否能找到它。任何人都可以解释为什么我可以从终端执行它,但不能从脚本执行它吗?

jimbo@wavefront:~$ locate mkvirtualenv
jimbo@wavefront:~$ which mkvirtualenv
jimbo@wavefront:~$ mkvirtualenv --version
13.1.2
jimbo@wavefront:~$

2 个答案:

答案 0 :(得分:4)

这是因为它是附加到shell的函数。运行它来查看它:

$ type mkvirtualenv

答案 1 :(得分:1)

避免使用which来检查二进制文件/等。它不是标准化的,并不总是可用的,并且本身就是外部二进制文件(因此比更好的选择更昂贵)。

更好的选择是typecommand

它们都是内置的,都是标准化的(至少在最基本的层次上),并且因为它们是内置的,所以也可以看到shell函数和别名。