Ubuntu'da sanal bir python ortamı nasıl kurulur ve kullanılır?


73

Python sanal ortamları, bağımlılık ve sürüm çakışmalarını önlemek için izole edilmiş python ortamları oluşturmak için kullanılır ve ayrıca dolaylı olarak izin sorunlarıyla da ilgilenir. Peki, Ubuntu’da kurmanın ve kullanmanın en kolay yolu nedir?

Yanıtlar:


99

İle virtualenvwrapper(işlevselliği için kullanıcı dostu sarmalayıcılar virtualenv)

Virtualenv yükle

yükleme virtualenvile

sudo apt-get install virtualenv

(Ubuntu 14.04 (güvenilir) kurulum için python-virtualenv)

Virtualenvwrapper'ı yükleyin

Ayrıca virtualenvwrapper'ı yüklememizin nedeni, sanal ortamlarınızı yönetmek için hoş ve basit komutlar sunmasıdır . Yüklemenin iki yolu vardır virtualenvwrapper:

Ubuntu paketi olarak (Ubuntu 16.04'den)

Çalıştırmak

sudo apt install virtualenvwrapper

o zaman koş

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

Pip kullanarak

  1. Pip kurulumu ve / veya güncellemesi

    Python 2 için pip yükleyin

    sudo apt-get install python-pip

    veya Python 3 için

    sudo apt-get install python3-pip

    (Python 3 kullanıyorsanız , bu kılavuzun geri kalan kısmı pip3yerine kullanmanız gerekebilir pip).

    İsteğe bağlı (ancak önerilir): pip için bash autocomplete özelliğini açın

    Çalıştırmak

    pip completion --bash >> ~/.bashrc

    ve source ~/.bashrcetkinleştirmek için çalıştırın .

  2. Virtualenvwrapper'ı yükleyin

    Çünkü çıkmasını istiyoruzsudo pip biz yüklemek virtualenvwrapper(altında varsayılan olarak yerel olarak ~/.localbirlikte):

    pip install --user virtualenvwrapper

    ve

    echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
  3. Sanalenvwrapper içinde kaynak .bashrc

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

Virtualenv ve virtualenvwrapper kurulumunu yapın:

İlk önce WORKON_HOMEsanal ortamlarımızın depolanacağı dizini içeren değişkeni dışa aktarıyoruz. Bunu yapalım~/.virtualenvs

export WORKON_HOME=~/.virtualenvs

şimdi de bu dizini oluştur

mkdir $WORKON_HOME

ve bu dışa aktarımı ~/.bashrcdosyamıza ekleyin, böylece bu değişken otomatik olarak tanımlanır

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

Ayrıca , aşağıdaki gibi ekstra hileler de ekleyebiliriz ; bu, pipfazladan sanal bir ortam oluşturması durumunda , WORKON_HOMEdizininize de yerleştirilmesini sağlar :

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

Kaynak ~ / .bashrc değişiklikleri yüklemek için

source ~/.bashrc

Çalışıp çalışmadığını test edin

Şimdi ilk sanal ortamımızı yaratıyoruz. -pArgümanı kullanmak için Python sürümünü ayarlamak için kullanılır, isteğe bağlıdır; de olabilir; python3örneğin.

mkvirtualenv -p python2.7 test

Ortamın kurulacağını göreceksiniz ve isteminiz şimdi etkin ortamınızın adını parantez içinde içeriyor. Ayrıca şimdi kaçarsan

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

çok şey görmelisiniz, /home/user/.virtualenv/...çünkü şimdi sistem site paketlerinizi kullanmıyor.

Çalıştırarak ortamınızı devre dışı bırakabilirsiniz.

deactivate

ve üzerinde tekrar çalışmak istiyorsanız, sadece yazın

workon test

Son olarak, ortamınızı silmek istiyorsanız, şunu yazın:

rmvirtualenv test

Keyfini çıkarın!


Bu blog yayınının yazarı için teşekkürler .


2
python-pipve python-virtualenvUbuntu repsitoryumu üzerinden kurulabilir, manuel kurulum gerektirmez.
Timo

2
Ancak, Ubuntu'da Ubuntu paketlerini birçok sebepten dolayı öneriyoruz. Pip veya virtualenv'in eski sürümlerinde yanlış olan bir şey yok, mükemmel yetenekliler.
tumbleweed

1
@GerhardBurger: Bir python3 virtualenv oluşturursanız, python3'te çalışan bir pip alır. Virtualenv'i oluşturmak için Ubuntu'nun sanalenvini kullanırsanız, yaptığınız her şey sanalenv'de yer alacaktır. Eğer sudo easy_installing 'ı başlatırsanız, / usr / local' ın her yerinde dağınıklık bırakacaktır.
tumbleweed

şimdi takma ad gerekli değil gibi görünüyor: --no-site-packagesvarsayılan ve --distributekullanımdan kaldırılmış
int_ua

Durumda mkvirtualenv testçalışmıyor, ayrıca bkz: stackoverflow.com/questions/15608236/...
Nikos Alexandris

8

Sanal ortamlar, proje bazında bağımlılıkları yönetmek ve izole etmek için bir yol sunar. Dahası, https://askubuntu.com/a/802594/15003 adresindesudo pip install açıkladığım gibi, güvenlik riski olan tüm durumdan da kaçınırlar . Resmi Python belgeleri ayrıca sanal ortamların kullanımını da teşvik eder .

Hem Python 2 hem de Python 3 için sanal ortamlar oluşturmanın ve kullanmanın en kolay yolu, veya virtualenvkullanarak yüklemektir . Her Python projesi için bir sanalenv oluşturun ve ardından etkinleştirin. Virtualenv'in belirli bir Python sürümüne özel olduğunu unutmayın. Etkinleştirmeden sonra, Python 2 veya 3 kullanıp kullanmadığınızdan bağımsız olarak Python paketlerini her zamanki gibi yükleyin; Python 3'ü kullanmaya gerek yoktur , sadece kurmak için kullanılır ve kullanılmaz , dolayısıyla yukarıda belirtilen güvenlik riskinden kaçınır. Bunu yapmak için komutlar:aptapt-getpippip3sudovirtualenvpip

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

Python 3 için bir sanalenv oluşturmak istiyorsanız, virtualenv venvbununla değiştirin :

virtualenv venv -p python3

İçin çeşitli çan ve ıslık hakkında daha fazlasını okuyun virtualenvat https://virtualenv.pypa.io/en/stable/ .


1
sourcebeni bir çok komuttan kurtarıyor
vnpnlz

OSError: [Errno 40] Çok fazla sembolik bağlantı seviyesi: '/ var / www / html / python / check / venv / bin / python'
Saravanan Nandhan

@SaravananNandhan Lütfen bunun yerine gerekli bilgileri içeren yeni bir soru sorun.
edwinksl


3

İle venv modülü Python 3,3 (ve Ubuntu 15.10) 'den temin

Sanal ortamlar (venvler) o kadar popülerdir ki, işlevsellik şimdi pythonun içine dahil edilmiştir (3.3'ten itibaren). Ubuntu'da kullanmak için python3-venv( ensurepipmodül mevcut olmadığından) yüklemeniz gerekir :

sudo apt-get install python3-venv

Bundan sonra kullanabilirsiniz

pyvenv myvirtualenv

adı verilen sanal bir ortam oluşturmak için myvirtualenv. Sonra kullanabilirsiniz

source myvirtualenv/bin/activate

sanal ortamı etkinleştirmek için. Devre dışı bırakmak için sadece yazın

deactivate

DÜZENLEME:pyvenv komut lehine önerilmemektedir olmuştur python3 -m venv. Bu, hangi Python yorumlayıcısının pyvenvbağlı olduğu ve dolayısıyla sanal ortamda hangi Python yorumlayıcısının kullanılacağı konusundaki karışıklığı önler . ( kaynak )

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.