【问题标题】:Run pipenv shell as part of a bash script将 pipenv shell 作为 bash 脚本的一部分运行
【发布时间】:2021-07-20 20:44:03
【问题描述】:

我创建了一个 bash 脚本来为多个应用(React、Next.js、django 等)搭建样板。

在我的 django_install() 函数的一部分中,我运行以下命令(在此处简化):

mkdir "$app_name"
cd ./"$app_name" || exit 0
gh repo clone <my-repo-boilerplate> .
rm -rf .git
pipenv install
pipenv install --dev
exit 0

我还想执行pipenv shell 和一些需要在该虚拟环境中运行的命令,因为我的样板文件有一些我想运行以完全自动化脚本的自定义脚本。

我知道我不能只在我的 bash 脚本中运行 pipenv shellpython manage.py [etc...]

我怎样才能实现它?

【问题讨论】:

  • 为什么不能运行这些命令?是因为它们是互动的吗?
  • 另外,根据您发布的代码示例,不需要您的exit 0
  • 除非我在其他地方做错了什么,否则pipenv shell 命令会在不同的 shell 中运行,而不是在我创建的目录中。
  • 虽然this question 是批处理的,这可能值得研究
  • 我添加了exit 0,因为在脚本的最后我调用了 init() 函数。我还能摆脱它吗?我粘贴的 sn-p 在函数内的 if/else 中。

标签: bash shell virtualenv pipenv


【解决方案1】:

我认为您可以为此使用pipenv run。例如:

pipenv run python manage.py [etc...]

它将在创建我的 pipenv 的虚拟环境中运行 python manage.py

https://pipenv.pypa.io/en/latest/cli/#pipenv-run

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 2016-08-06
    相关资源
    最近更新 更多