这是我执行的bash命令:
source ./virtualenv/Scripts/activate && cd ./deps/scripts && python generate_system_info.py现在,我想在TCL脚本中运行它。我不知道如何才能做到这一点。
我知道TCL中的exec是必需的。但是,我不确定是否可以使用上面所示的方法从TCL中激活virtualenv。当我在TCL中调用&&时,我也不知道如何集成exec。
我所努力达到的目标是否可能?
TCL外壳来自一个名为Xilinx的程序。
发布于 2022-04-25 18:15:49
来自文夫文档:
您不需要特别地激活环境;激活只是将虚拟环境的二进制目录添加到您的路径中,这样“Python”就可以调用虚拟环境的Python解释器,并且可以运行已安装的脚本,而不必使用它们的完整路径。但是,安装在虚拟环境中的所有脚本都应该可以在不激活它的情况下运行,并使用虚拟环境的Python自动运行。
因此,基本上activate只是替换了您的python脚本的路径(以及$PATH环境变量,至少在linux中是这样)。您可以使用完整/相对路径从virtualenv目录运行正确的python。
如果您挣扎于它所在的位置,您可以激活virtualenv并使用which命令查找它!
发布于 2022-04-25 17:55:04
如果没有其他的,您可以像这样执行整个管道:
exec bash -c {source ./virtualenv/Scripts/activate && cd ./deps/scripts && python generate_system_info.py}&&只是说“如果前面的命令成功了,继续到下一个命令”。因此,您可以在三个单独的行上执行这三个命令。问题是source命令。它需要在当前进程中设置环境变量,默认情况下,tcl会启动一个子set,当子set结束时,环境就会消失。您可以在tcl中设置本地环境变量,因此可能会选择将activate shell脚本转换为tcl命令。那你就可以
activate.tcl
cd deps/scripts
exec python generate_system_info.pyhttps://stackoverflow.com/questions/72003659
复制相似问题