Як налаштувати та використовувати віртуальне середовище python в Ubuntu?


73

Віртуальне середовище Python використовується для створення ізольованих середовищ python, щоб уникнути конфліктів залежностей та версій, а також опосередковано піклуватися про проблеми з дозволом. Але який найпростіший спосіб налаштувати його і використовувати його в Ubuntu?

Відповіді:


99

З virtualenvwrapper(зручні для користувача обгортки для функціональності virtualenv)

Встановіть virtualenv

Встановити за virtualenvдопомогою

sudo apt-get install virtualenv

(для встановлення Ubuntu 14.04 (надійний) python-virtualenv)

Встановіть virtualenvwrapper

Причина, по якій ми також встановлюємо virtualenvwrapper, полягає в тому, що вона пропонує приємні та прості команди для управління вашими віртуальними середовищами. Існує два способи встановлення virtualenvwrapper:

Як пакет Ubuntu (від Ubuntu 16.04)

Біжи

sudo apt install virtualenvwrapper

потім біжи

echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc

Використання піп

  1. Встановіть та / або оновіть pip

    Встановіть pip для Python 2 з

    sudo apt-get install python-pip

    або для Python 3

    sudo apt-get install python3-pip

    (якщо ви використовуєте Python 3, можливо, вам доведеться використовувати pip3замість pipрешти цього посібника).

    Необов’язково (але рекомендується): Увімкніть автозаповнення bash для pip

    Біжи

    pip completion --bash >> ~/.bashrc

    і запустіть, source ~/.bashrcщоб увімкнути.

  2. Встановіть virtualenvwrapper

    Оскільки ми хочемо уникати,sudo pip ми встановлюємо virtualenvwrapperлокально (за замовчуванням у розділі ~/.local) за допомогою:

    pip install --user virtualenvwrapper

    і

    echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
  3. Джерело virtualenvwrapper в .bashrc

    echo "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc

Налаштування virtualenv та virtualenvwrapper:

Спочатку ми експортуємо WORKON_HOMEзмінну, яка містить каталог, у якому потрібно зберігати наші віртуальні середовища. Давайте зробимо це~/.virtualenvs

export WORKON_HOME=~/.virtualenvs

тепер також створіть цей каталог

mkdir $WORKON_HOME

і помістіть цей експорт у наш ~/.bashrcфайл, щоб ця змінна автоматично була визначена

echo "export WORKON_HOME=$WORKON_HOME" >> ~/.bashrc

Ми також можемо додати кілька додаткових хитрощів, таких як наступний, що гарантує, що якщо pipстворюється додаткове віртуальне середовище, він також розміщується в нашому WORKON_HOMEкаталозі:

echo "export PIP_VIRTUALENV_BASE=$WORKON_HOME" >> ~/.bashrc 

Джерело ~ / .bashrc для завантаження змін

source ~/.bashrc

Перевірте, чи працює

Тепер ми створюємо наше перше віртуальне середовище. -pАргумент є необов'язковим, він використовується , щоб встановити версію Python для використання; це може бути, python3наприклад.

mkvirtualenv -p python2.7 test

Ви побачите, що середовище буде налаштоване, і ваше запит тепер включає в дужках назву вашого активного середовища. Також якщо ти зараз біжиш

python -c "import sys; print sys.path"

ви повинні побачити багато, /home/user/.virtualenv/...тому що зараз він не використовує ваші системні сайти-пакети.

Ви можете деактивувати своє оточення, запустивши

deactivate

і якщо ви хочете знову працювати над цим, просто введіть

workon test

Нарешті, якщо ви хочете видалити оточення, введіть

rmvirtualenv test

Насолоджуйтесь!


Дякую автору цього блогу .


2
python-pipі їх python-virtualenvможна встановити за допомогою Ubuntu Repsitory, немає необхідності в ручній установці.
Тимо

2
Однак в Ubuntu ми рекомендуємо пакети Ubuntu з багатьох причин. Немає нічого поганого в старших версіях pip або virtualenv, вони цілком здатні.
перекотиполе

1
@GerhardBurger: Якщо ви створите python3 virtualenv, він отримає піп, який працює в python3. Якщо ви використовуєте virtualenv Ubuntu для створення virtualenv, все, що ви зробили, буде міститися у virtualenv. Якщо ви почнете sudo easy_installing речі, це залишить безлад у всьому / usr / local, це нетривіально, щоб прибрати, без особливих вигод.
перетинка

схоже, псевдонім зараз не потрібен: --no-site-packagesза замовчуванням і --distributeзастарілий
int_ua

Якщо справа mkvirtualenv testне працює, дивіться також: stackoverflow.com/questions/15608236/…
Нікос Олександріс

8

Віртуальні середовища пропонують спосіб управління та ізоляції залежностей на основі проекту. Більше того, вони також уникають усієї sudo pip installситуації, що є ризиком для безпеки, як я пояснив у https://askubuntu.com/a/802594/15003 . Офіційна документація Python також заохочує використання віртуальних середовищ .

Найпростіший спосіб створення та використання віртуальних середовищ як для Python 2, так і для Python 3 - це встановлення з virtualenvвикористанням aptабо apt-get. Для кожного проекту Python створіть virtualenv та активуйте його. Зауважте, що virtualenv є специфічним для певної версії Python. Після активації використовуйте pipдля установки пакетів Python як завжди, незалежно від того, використовуєте ви Python 2 або 3; немає необхідності використовувати pip3для Python 3. sudoвикористовується лише для установки virtualenvта не використовується pip, тому уникаючи вищезгаданого ризику безпеки. Команди для цього є:

sudo apt update
sudo apt install virtualenv
cd ~/desired_directory  # cd to desired_directory
virtualenv venv  # create virtualenv named venv for default system Python, which is Python 2 for Ubuntu
source venv/bin/activate  # activate virtualenv
pip install -U pip  # upgrade pip in case it is outdated
pip install desired_package  # install desired_package

Якщо ви хочете створити virtualenv для Python 3, замініть virtualenv venvна:

virtualenv venv -p python3

Детальніше про різні дзвіночки читайте virtualenvна https://virtualenv.pypa.io/en/stable/ .


1
sourceврятує мені багато команд
vnpnlz

OSError: [Errno 40] Занадто багато рівнів символічних посилань: '/ var / www / html / python / check / venv / bin / python'
Сараванан Нандхан

@SaravananNandhan Будь ласка, задайте нове запитання замість необхідних деталей.
edwinksl


3

З модулем venv, доступним з Python 3.3 (та Ubuntu 15.10)

Віртуальні середовища (venvs) настільки популярні, що тепер функціональність включена в сам пітон (від 3,3 і далі). Щоб використовувати його на Ubuntu, вам потрібно встановити python3-venv(оскільки ensurepipмодуль недоступний):

sudo apt-get install python3-venv

Після цього можна використовувати

pyvenv myvirtualenv

створити віртуальне середовище під назвою myvirtualenv. Потім можна використовувати

source myvirtualenv/bin/activate

для активації віртуального середовища. Для деактивації просто введіть

deactivate

EDIT:pyvenv сценарій застарів на користь python3 -m venv. Це запобігає плутанині щодо того, до чого pyvenvпідключений інтерпретатор Python, і таким чином, який інтерпретатор Python буде використовуватися у віртуальному середовищі. ( джерело )

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.