Невозможно продолжить выполнение сценария bash после создания виртуальной среды с помощью pipenv

Я пишу bash скрипт, который автоматизирует процесс создания проекта django и создания некоторых папок и файлов, необходимых для проекта django.

Проблема в том, что когда я создаю и активирую виртуальную среду с помощью команды pipenv shell, виртуальная среда создается и активируется, но следующая команда не выполняется. Сценарий просто ждет выхода из виртуальной среды и когда я выхожу/деактивирую виртуальную среду, тогда выполняются следующие строки сценария bash.

Моя следующая строка pipenv install django. Когда эта строка выполняется, django устанавливается в виртуальную среду и снова ждет, пока пользователь выйдет из виртуальной среды, и когда я выхожу из среды, выполняется следующая строка. Но моя следующая строка django-admin startproject myproject когда эта строка выполняется, я получаю ошибку command not found. Да, я знаю, почему я получаю эту ошибку. Среда деактивирована, и она не может распознать команду django-admin.

Кроме того, я запускаю этот скрипт как superuser. Я использую wsl2.

мой код:

mkdir "django_project"
cd "django_project"
pipenv shell
pipenv install django
read -p "Enter your project name: " PROJECT_NAME
django-admin startproject "$PROJECT_NAME"
cd "$PROJECT_NAME"
pipenv lock -r > requirements.txt

После запуска этого скрипта я получаю следующее в командной строке,

Creating a Pipfile for this project...
Launching subshell in virtual environment...
root@LENOVO:/home/ubuntu/USER/Bash_Projects/test_folder/django_project#  . /root/.local/share/virtualenvs/django_project-IyKPiglU/bin/activate
(django_project) root@LENOVO:/home/ubuntu/USER/Bash_Projects/test_folder/django_project# exit
exit
Installing django...
Adding django to Pipfile's [packages]...
✔ Installation Succeeded 
Pipfile.lock not found, creating...
Locking [dev-packages] dependencies...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✔ Success! 
Updated Pipfile.lock (a6086c)!
Installing dependencies from Pipfile.lock (a6086c)...
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
Enter your project name: test_project1
create_django_project.sh: line 6: django-admin: command not found
create_django_project.sh: line 7: cd: test_project1: No such file or directory

После этого я завершил скрипт командой ^C

Файл Pipfile успешно создан. Файл requirements.txt также создан, и все пакеты обновлены в файле requirements.txt.

Мой вопрос заключается в том, как продолжить скрипт после активации окружения, не деактивируя его?

Я исправил эту ошибку, используя только pip3 без pipenv

pip3 install django

в режиме суперпользователя используйте эту командную строку

sudo -s

И это работает для меня. Моя машина - UBUNTU 20.04 ВЕРСИЯ PYTHON 3.8.10

Вернуться на верх