Для Python 3.3+ (з новим venv
вбудованим модулем)
Коротка відповідь (незалежно від версії):
- Немає чистого, прямого способу переміщення віртуального середовища
- Просто відтворити, це легко !!
Довга відповідь:
Станом на Python v3.3, virtualenv
він став вбудованим модулем з ім'ям venv
.
--relocatable
Варіант вже згадувалося в інших відповідях не було включено до venv
, і в даний час не існує хороший, безпечний спосіб , який я знаю або перейменовані або перемістити віртуальне середовище Python.
Однак існує досить простий спосіб просто відтворити віртуальне середовище з усіма його поточними встановленими пакетами. Дивіться цю відповідь або перегляньте розділ нижче, щоб отримати інформацію щодо відтворення віртуального середовища. Під час процесу ви можете відтворити нове середовище в будь-якому місці та з будь-яким ім'ям, яке хочете. Або дивіться процес нижче в розділі нижче.
У цій відповіді він згадує кілька інших сторонніх пакетів, які можуть підтримувати прямі перейменування або переміщення. Якщо ви вирішили шукати спосіб перемістити віртуальне середовище цілим, ви можете вивчити, чи працюють вони і з ними venv
.
Примітка: У цій відповіді вона зосереджена на virtualenv
, а не на venv
. Дивіться нижче, як перекласти.
venv
проти virtualenv
синтаксису старшої команди
Команда, яку слід використовувати venv
:
python -m venv
а не просто virtualenv
, яка встановлюється як команда в оригінальному пакеті. Де "python" означає, однак ви запускаєте свій виконуваний файл python, що може бути різним, наприклад:
python
py
або py -3.7
схожий (програма запуску Python для Windows для Python 3.3+ та Windows лише на даний момент)
python3
(дозвіл для середовищ Linux, які подвійно встановлюють python 2 і 3)
- Якщо у вас виникли проблеми, використовуйте абсолютний шлях до виконуваного файлу python, який ви хочете запустити: наприклад
c:\program files\python37\python.exe
Якщо ви не впевнені, яка версія запущена, ви завжди python --version
можете це дізнатись.
Як відтворити віртуальне середовище
Створення / відтворення віртуального середовища є простим і повинно стати другою природою після того, як ви трохи попрацюєте з ними. Цей процес відображає те, що ви зробили б для розповсюдження вашого сценарію як пакета (з його залежностями) у першій половині, а потім того, що хтось зробив би, щоб встановити ваш сценарій / пакет для подальшого розвитку.
Спочатку отримайте оновлений список того, що знаходиться у віртуальному середовищі. Коли він активний, отримайте версію Python, яку він використовує, та збережіть список залежностей у файл.
Використовуйте python --version
з активованим віртуальним середовищем, щоб побачити, яку версію Python він використовує.
- Це для ясності - можливо, ви захочете оновити версію Python з різних причин - принаймні до останньої версії виправлення
- Наприклад, якщо існуючий venv використовує Python v3.7.4, але тепер v3.7.6 вийшов - використовуйте замість v3.7.6, який повинен включати лише безперешкодні виправлення безпеки та помилок.
Використовуйте python -m pip freeze > requirements.txt
для створення списку поточних залежностей пакета та розміщення їх у requirements.txt
файлі. Ця команда точно працює в Linux або Git Bash - не впевнена на 100% щодо Powershell або командного рядка в Windows.
Тепер створіть нове віртуальне середовище, а потім додайте залежності від старого.
Зробіть свій новий venv.
- Переконайтеся, що ви використовуєте правильну версію python, яку ви хочете встановити на venv.
- Якщо ви хочете, щоб це була така сама версія Python:
- Запустіть python безпосередньо з поточного віртуального середовища (з його активацією) і просто використовуйте
python
як команду
- Або використовуйте абсолютний шлях з
python.exe
у папці віртуального середовища
- Для нового запису папки venv в команді:
- Або додайте абсолютний або відносний шлях до потрібного кінцевого розташування папки.
- Використовуйте
python -m venv my_new_venv
для створення нового віртуального середовища в поточному робочому каталозі в новій my_new_venv
папці.
- Ім'я папки venv буде іменем venv (те, що відображається в підказці при її активації).
Встановіть залежності з requirements.txt
файлу.
python -m pip install -r requirements.txt
Можливо, вам доведеться переінсталювати локальні пакети, які перебувають у режимі розробки.
Зверніть увагу: якщо вам коли-небудь потрібно буде побачити конкретне розташування, до якого встановлений пакет, використовуйте:
python -m pip list -v
- Параметр
-v
або "багатослівний" додасть додаткову інформацію про кожен встановлений пакет, включаючи шлях, в який він встановлений. Це корисно, щоб переконатися, що ви підтримуєте віртуальні, користувацькі та системні встановлені пакети.
На цьому етапі ви можете просто видалити стару папку venv та весь вміст. Я рекомендую використовувати графічний інтерфейс для цього - видалення файлів часто є постійним з командного рядка Linux, і невелика помилка може бути поганою новиною.