# Перенос проекта в виртуальном окружении в Python

Часто возникают ситуации, когда нужно перенести исходный проект в новую папку, например, на новый сервер. Давайте разберемся как можно это сделать с виртуальным окружением в Python.

Сначала создадим новую папку `new_project_ven`, в которую перенесем проект из `project_ven`:

- /project_venv/
  - ...
  - /project1/
    - main.py
- /new_project_venv/

Далее копируем все установленные пакеты из виртуального окружения `project_ven`. Делается это с помощью следующей команды:

`python -m pip freeze > req.txt`

Слева от слова `freeze` ставится угловая скобка и имя файла, в котором будет находится информация о пакетах. У нас такой файл называется `req.txt`, но его имя может быть любым. После выполнения команды в папке с проектом появится новый файл:

- /project_venv/
  - ...
  - /project1/
    - main.py
    - req.txt

Далее нужно скопировать папку `project1`, в которой лежит уже два файла: `main.py` и `req.txt`. Затем вставляем ее в папку `new_project_venv`:

- /project_venv/
  - ...
  - /project1/
    - main.py
    - req.txt
- /new_project_venv/
  - /project1/
    - main.py
    - req.txt

Теперь выходим из текущего виртуального окружения:

`deactivate`

Затем в консоли нужно перейти в папку `new_project_venv/project1`. После этого, следует создать новое виртуальное окружение для нового проекта:

`python -m venv ..`

Далее активируем наше новое окружение:

`..\Scripts\activate # для ОС Windows source ../bin/activate # для ОС Linux`

После чего в консоли вы увидите имя нового виртуального окружения:

`(new_project_venv)`

Теперь нужно восстановить пакеты из исходного проекта. Для этого применяем следующую команду:

`pip install -r req.txt`

После успешной установки библиотеки выведется следующее сообщение:

`Successfully installed numpy-1.26.4`

Перенесите созданный вами проект в новое виртуальное окружение.

Восстановите в новом проекте все библиотеки из исходной папки. Проверьте работу установленных библиотек.

← →
↑