![](/img/trans.png)
[英]pip-install Python Package from Azure Artefact on a Databricks Cluster
[英]How to pip-install Python package into virtual env and have CLI commands accessible in normal shell
对于可能会干扰其他软件包的较大Python软件包,建议将它们安装到自己的虚拟环境中,并且某些Python软件包将CLI命令公开给外壳程序。
有没有办法将这样的软件包pip-install到其自己的虚拟环境中,但是可以从普通shell访问CLI命令而无需事先手动切换到该虚拟环境?
这里是一个例子:当我通过安装csvkit时
pip install csvkit
我的csvcut
有命令csvcut
, csvlook
, csvgrep
和其他命令。 但是,如果我不希望在我的系统的Python安装cvskit并在虚拟环境中安装它,说在~/venvs/csvkit
,我有csvkit唯一可用的,如果我有手动激活环境csvkit
。
有没有一种创建虚拟环境并在其中安装csvkit的方法,以便使诸如csvcut
之类的命令在运行之前先激活环境?
pipx –隔离环境中的“安装并运行Python应用程序” ,仍然可以很好地维护更新的工具。 它的工作原理类似于pipsi:
pipx
。 (请参阅pipx安装 ) 然后发出:
pipx install csvkit
最后,确保pipx
的bin目录(通常为~/.local/bin
)位于PATH中。
请注意,pipx还有其他命令来维护和检查生成的venvs-请参阅pipx --help
。
您可以创建别名,例如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中,因此您不必担心不同的
PKGNAME
具有PKGNAME
的冲突。
它对csvkit
:
pipsi
。 然后发出:
pipsi install csvkit
最后,确保pipsi
的bin目录(通常为~/.local/bin
)位于您的PATH中。
而已! 现在,您可以在命令行上键入,例如
csvcut --help
它在自己的virtualenv中调用csvcut
。
无需手动激活virtualenv,并且您的系统Python不会被其他软件包(除了pipsi
软件包一劳永逸)所污染。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.