批处理:启动pipenv shell,然后在虚拟环境中运行命令

Dan*_*Bak 2 batch-file pipenv

这是一个批处理脚本:

Z:
cd Z:\different_directory
pipenv shell
cd ..\another_directory


:End
cmd  /k
Run Code Online (Sandbox Code Playgroud)

此处发生的是启动了pipenv Shell,但虚拟环境未CD。相反,一旦退出pipenv,它就会运行cd命令。

是否可以使用此批处理脚本从pipenv内部运行命令?

小智 7

我知道这个问题已经很老了,但是如果你们中的任何人通过谷歌找到了这个问题,这就是确切的答案:pipenv shell "/c command [args]"在这种情况下只需使用pipenv shell "/c cd ..\another_directory"

为什么这样有效:就像文档所说,shell 之后的任何内容都将作为参数传递给子 shell,并且 CMD 上的参数 /c 在 shell spawn 上运行命令。就这样。您甚至可以让它运行整个 .bat。

  • `pipenv shell "cd ..\another_directory"` 在 Ubuntu 环境下为我工作 (2认同)

Amy*_*ons 6

您可以使用pipenv run代替pipenv shell直接运行python命令或批处理脚本。您将无法pipenv run cd ../another_dir直接运行,但是我假设这不是此操作的主要目标,因为您只能在该会话中更改目录。您可以使用以下命令创建批处理脚本,例如test.bat

cd ../another_dir
python test.py
Run Code Online (Sandbox Code Playgroud)

然后运行pipenv run test.bat。以下页面有更多详细信息。

来源:http : //witkowskibartosz.com/blog/pipenv_run_vs_pipenv_shell.html#.W2SBZflKhaQ