对于可能干扰其他包的大型Python包,建议将它们安装到自己的虚拟环境中,一些Python包将CLI命令公开给shell。
是否有一种方法可以将这样的包安装到自己的虚拟环境中,但是可以从普通的shell访问CLI命令,而无需事先手动切换到这个虚拟环境?
这里有一个例子:当我安装csvkit时
pip install csvkit
我的shell中有命令csvcut
、csvlook
、csvgrep
和其他命令。但是,如果我不想在我的系统中安装cvskit并将其安装在虚拟环境中,比如在~/venvs/csvkit
,那么只有在手动激活了环境csvkit
之后,才有csvkit可用。
是否有一种方法来创建虚拟环境并在其中安装csvkit,以便像csvcut
这样的命令在运行之前激活环境本身?
发布于 2019-09-10 22:50:33
一个更新的工具,仍然是非常好的维护是pipx -在独立环境中安装和运行Python应用程序。它的工作原理类似于pipsi:
pipx
。(见pipx装置)pipx
的bin目录(通常是~/.local/bin
)在您的路径中。请注意,pipx有用于维护和检查生成的venvs的附加命令--请参阅pipx --help
。
发布于 2017-03-31 02:04:58
您可以创建别名,如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>
命令即可。
发布于 2017-12-20 17:41:55
使用pipsi
。这里是来自项目的ReadMe的描述:
pipsi将每个包安装到~/..local/venvs/PKGNAME中,然后将所有新脚本符号链接到~/..local/bin(这些脚本可以分别由PIPSI_HOME和PIPSI_BIN_DIR env变量更改)。 与PKGNAME user相比,每个PKGNAME都安装在自己的虚拟环境中,因此您不必担心不同的
PKGNAME
具有冲突的依赖关系。
这对csvkit
很有好处
pipsi
。pipsi
的bin目录(通常是~/.local/bin
)在您的路径中。就这样!现在您可以在comamnd行上键入。
csvcut --help
它在自己的虚拟环境中调用csvcut
。
不需要手动激活virtualenv,而且您的系统Python不会受到额外包的污染(除了pipsi
包之外)。
https://stackoverflow.com/questions/43137114
复制相似问题