Python için pip, virtualenv ve dağıtmanın doğru yolu nedir?


247

Kısa Soru

Arka fon

In my cevap için SO soru 4314376 , kullanıyorum tavsiye ez_setupsonra yüklemek diye pipve virtualenvşöyledir:

curl -O http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
sudo easy_install pip
sudo pip install virtualenv

Aslında bu talimatları Jesse Noller'ın blog yazısından aldım Python'u Mac'te kullanmak ister misiniz? . Temiz bir global site paketleri dizini tutma fikrini seviyorum, bu yüzden yüklediğim diğer paketler virtualenvwrapperve distribute. (Son zamanlarda bu Python kamu hizmeti duyurusudistribute nedeniyle araç kutuma ekledim . Bu iki paketi yüklemek için kullandım:

sudo pip install virtualenvwrapper
curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py

Artık kurulum araçları ve easy_install yok

Python kamu hizmeti duyurusunu gerçekten takip etmek için, yeni bir Python kurulumunda aşağıdakileri yaparım:

curl -O http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py
sudo easy_install pip
sudo pip install virtualenv
sudo pip install virtualenvwrapper

Glif'in Azarlaması

Bir yorumunda cevabım için SO soru 4314376 , SO kullanıcı Glyph belirtti:

HAYIR. ASLA HİÇ ne sudo python setup.py installolursa olsun yapmayın . Pip kurulumunuzu ~ / .local veya başka bir şeye koyan bir ~ / .pydistutils.cfg yazın. Özellikle adlandırılmış dosyalar ez_setup.py, kurulum sisteminizdeki ve easy_install gibi işletim sisteminizdeki diğer şeyleri potansiyel olarak bozabilecek daha yeni sürümlerini emme eğilimindedir.

Kısa soruya geri dön

Yani Glyph cevabı benim asıl soruya götürüyor:


Matthew, bu konunun oldukça eski olduğunu biliyorum. Ama bu cephede yeni bir şey var mı? O do için kötü bir fikir hala mı python distribute_setup.pyizledi easy_install pipve virtualenv --distribute venv? (bkz. python-guide.readthedocs.org/en/latest/starting/install/… ) ve eğer öyleyse, neden?
Amelio Vazquez-Reina

2
Neyin var sudo apt-get install python-{pip,virtualenv}???
MestreLion

1
Evet, genellikle küçük ama uyumlu paketler, küçük sürümler sizin amaçlarınız için önemli olmadığında iyidir, ancak özellikle "neyin yanlış olduğunu" sordunuz ve bilgiç rozeti almaya çalışıyorum.

2
Bilginize, bu soruya çeşitli bağlantılar artık / yitirmiş kırılır - Şu anda hiç olanları görmek (olamaz) pip, virtualenvve Python PSA.
Chris Sprague

1
http://python-distribute.org/distribute_setup.py404 :(
jitter,

Yanıtlar:


173

Bunu python'un kendisine bir şey yüklemeden yapabilirsiniz .

Sudo ya da herhangi bir ayrıcalığa ihtiyacınız yok.

Herhangi bir dosyayı düzenlemenize gerek yoktur.

Virtualenv'i önyükleme sanal ortamına yükleyin. Daha fazlasını oluşturmak için o sanal ortamı kullanın. Virtualenv pip ve dağıtım ile birlikte geldiğinden, her şeyi tek bir kurulumdan alırsınız.

  1. Download sanalenv:
  2. Kaynak tarball'ı paketinden çıkarın
  3. Temiz bir sanal ortam oluşturmak için ambalajsız tarball'ı kullanın. Bu sanal ortam diğerlerini "önyüklemek" için kullanılacaktır. Tüm sanal ortamlarınız otomatik olarak pip ve dağıtım içerecektir.
  4. Pip kullanarak, virtualenv'i o bootstrap ortamına kurun.
  5. Daha fazlasını oluşturmak için bu önyükleme ortamını kullanın!

İşte bash'ta bir örnek:

# Select current version of virtualenv:
VERSION=12.0.7
# Name your first "bootstrap" environment:
INITIAL_ENV=bootstrap
# Set to whatever python interpreter you want for your first environment:
PYTHON=$(which python)
URL_BASE=https://pypi.python.org/packages/source/v/virtualenv

# --- Real work starts here ---
curl -O $URL_BASE/virtualenv-$VERSION.tar.gz
tar xzf virtualenv-$VERSION.tar.gz
# Create the first "bootstrap" environment.
$PYTHON virtualenv-$VERSION/virtualenv.py $INITIAL_ENV
# Don't need this anymore.
rm -rf virtualenv-$VERSION
# Install virtualenv into the environment.
$INITIAL_ENV/bin/pip install virtualenv-$VERSION.tar.gz

Artık daha fazla oluşturmak için "bootstrap" ortamınızı kullanabilirsiniz:

# Create a second environment from the first:
$INITIAL_ENV/bin/virtualenv py-env1
# Create more:
$INITIAL_ENV/bin/virtualenv py-env2

Çıldırmak!

Not

Bu, virtualenv'in gerçekten eski bir sürümünü kullanmadığınızı varsayar. Eski sürümler bayrakları --no-site-packges(ve Python sürümüne bağlı olarak --distribute) gerektiriyordu. Artık bootstrap ortamınızı sadece python virtualenv.py path-to-bootstrapveya ile oluşturabilirsiniz python3 virtualenv.py path-to-bootstrap.


13
Sıkıcı çünkü çok genel, basit bir indirme, untar ve sonra python virtualenv.py TARGET_DIRECTORYaynı şeyi yapıyor.
Sebastian Blask

3
Bu harika. Sanal paketin Python'un birden çok sürümüne sistem paketlerinden bağımsız olarak yüklenmesi ile ilgili daha spesifik sorumu yanıtlamak için uyarladım - stackoverflow.com/questions/6812207/… - mükemmel çalışıyor.
david.libremone

6
not: akımın virtualenv'- no-site-Packages --distribute' seçeneklerine ihtiyacı yoktur. Bunun tersi --system-site-packagesgerekebilir
jfs

1
Bu komutla en son kararlı tarball'ı alabilirsiniz:curl -Lo virtualenv-tmp.tar.gz 'https://github.com/pypa/virtualenv/tarball/master'
Bohr

1
Nereye monte edersin virtualenvwrapper? Dokümanlar özellikle bir sanal ağa kurmama konusunda uyarıyor ( işe yarıyor gibi görünse de ).
Aryeh Leib Taurog

21

Bence Glif böyle bir şey yapmak demektir:

  1. Bir dizin oluşturun ~/.localZaten mevcut değilse .
  2. Gözlerinde farklı ~/.bashrc, emin ~/.local/binolduğunu PATHve bu ~/.localüzerindedirPYTHONPATH .
  3. Aşağıdakileri ~/.pydistutils.cfgiçeren bir dosya oluşturun

    [install]
    prefix=~/.local

    Standart bir ConfigParser biçimindeki dosyadır.

  4. İndirin distribute_setup.py ve çalıştırın python distribute_setup.py(hayır sudo). Var olmayan bir şeyden şikayet edersesite-packages , el ile oluşturun:

    mkdir -p ~ / .local / lib / python2.7 / site paketleri /

  5. which easy_installGeldiğini doğrulamak için çalıştırın~/.local/bin

  6. Çalıştırmak pip install virtualenv
  7. Çalıştırmak pip install virtualenvwrapper
  8. Diyelim ki sanal bir env içeren klasör oluştur ~/.virtualenvs
  9. Gelen ~/.bashrceklenti

    export WORKON_HOME
    source ~/.local/bin/virtualenvwrapper.sh

Bu kadar, hiçbir faydası yok sudove Python ortamınız ~/.localişletim sisteminin Python'undan tamamen ayrı. Yasal Uyarı: virtualenvwrapperBu senaryoda ne kadar uyumlu olduğundan emin değilim - sistemimde test edemedim :-)


2
~ / .Local biraz aptal bir isim mi? Ya Ruby aynı şeyi yapmak istiyorsa? Belki ~ / .python27 daha iyi olurdu?
Jonathan Hartley

1
Sadece bir not, ben sadece aynı şeyi Windows üzerinde denedim ve başarıyla dağıtım_setup.py çalıştırmak için PYTHONPATH yerel klasörü (örneğin "yerel" denir) ve "yerel \ Lib \ site-paketleri" eklemek zorunda kaldı.
teknolojik

1
Bu yaklaşımla ilgili son bir sorun: virtualenv, .pydistutils.cfg dosyasını kullanmakla uyumsuzdur. Bkz. Github.com/pypa/virtualenv/issues/88
Dan

3
Sanırım easy_install pipadım 5 ile 6 arasında bir süre olmalı .
SiggyF

5
~ / .Local şey PEP 370'den geliyor.
Éric Araujo

16

Bu cevapta bağladığım birkaç öğreticide tavsiye edilen adımları izlerseniz, Walker'ın ve Vinay'ın cevaplarında biraz karmaşık "manuel" adımlar olmadan istediğiniz efekti elde edebilirsiniz. Ubuntu'daysanız:

sudo apt-get install python-pip python-dev

Eşdeğer, python yüklemek için homebrew kullanılarak OS X'te elde edilir (daha fazla ayrıntı burada ).

brew install python

İle pipyüklü yaptığında (atlayabilirsiniz kalan paketleri almak için kullanabilirsiniz sudoyerel piton yüklemesini kullanıyorsanız olarak, OS X).

sudo pip install virtualenvwrapper

(bunlar küresel olarak ihtiyacınız olan tek paketlerdir ve işletim sisteminden sistem düzeyinde herhangi bir şeyle çatışacağından şüpheliyim. Süper güvenli olmak istiyorsanız, dağıtımın sürümlerini koruyabilirsiniz sudo apt-get install virtualenvwrapper)

Not: Ubuntu 14.04 yılında aldığım pip ile bazı hatalar yüklemek kullandığım bu yüzden, pip3 install virtualenv virtualenvwrapperve eklemek VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3benim için .bashrc/.zshrcdosyanın.

Daha sonra .bashrcdosyanıza eklersiniz

export WORKON_HOME
source /usr/local/bin/virtualenvwrapper.sh

ve kaynak yap

. ~/.bashrc

Temelde bu. Şimdi tek karar, sistem düzeyinde paketleri dahil etmek için bir sanal ağ oluşturmak isteyip istemediğinizdir.

mkvirtualenv --system-site-packages foo

mevcut sistem paketlerinizin yeniden yüklenmesi gerekmiyorsa, sistem yorumlayıcının sürümlerine bağlanırlar. Not: yine de yeni paketler kurabilir ve mevcut dahil sistem paketlerini sudo olmadan yükseltebilirsiniz - test ettim ve sistem yorumlayıcısında herhangi bir kesinti olmadan çalışır.

kermit@hocus-pocus:~$ sudo apt-get install python-pandas
kermit@hocus-pocus:~$ mkvirtualenv --system-site-packages s
(s)kermit@hocus-pocus:~$ pip install --upgrade pandas
(s)kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.10.1
(s)kermit@hocus-pocus:~$ deactivate
kermit@hocus-pocus:~$ python -c "import pandas; print(pandas.__version__)"
0.8.0

Tamamen ayrılmış bir ortam istiyorsanız alternatif

mkvirtualenv --no-site-packages bar

veya bunun varsayılan seçenek olduğu göz önüne alındığında,

mkvirtualenv bar

Sonuç olarak, favori paketlerinizi özgürce ve aniden kurabileceğiniz yeni bir sanal ağınız olur.

pip install flask

Bu hem kurulum araçlarını hem de dağıtmaz mı? Ve bu, kurulum araçlarını sevmeyen Tkinter ve pyopencl gibi paketleri kırmıyor mu?
Ocaklar

WORKON_HOME'u bashrc içinde null değerine ayarlamak venvwrapper'ı makul bir şey kullanmaya zorlar export WORKON_HOME="$HOME/.virtualenvs"mı?
Ocaklar

Peki, paket yöneticinizin pip'in bağlı olduğu her şeyi yükler. Şu anda, Ubuntu ve OS X'teki brew install pythonkurulum araçları ( pip + kurulum araçlarını içeri çekiyor). Bu yaklaşım benim için iyi çalışıyor. Ek olarak, pip'e odaklanmak Python paketlemesinde de gelecekteki yol gibi görünüyor .
metakermit

1
WORKON_HOMEvarsayılan olarak ~/.virtualenvsevet. /usr/local/bin/virtualenvwrapper.shBu setlerde bir çizgi var workon_home_dir="$HOME/.virtualenvs" if [ "$workon_home_dir" = "" ].
metakermit

Anladım. Teşekkürler. Basit yaklaşımınız, dağıtma (pyopencl) kullanma konusunda seçici olan pip install modülleri Ubuntu 12.04'te benim için harika çalıştı. Benim için hile sonra pyopencl yükledim aktif virtualenv içinde pip install virtualenv virtualenv-wrapperhattı takip pip install --upgrade distributeediyordu. Ben de export PROJECT_HOME="$HOME/src"serin mkprojectvenv aracı etkinleştirmek için bashrc ekledi .
Ocaklar

12

Python 3.4 sonrası

Python 3.3 venv modülünü ekler ve Python 3.4 ensurepip modülünü ekler . Bu, önyükleme pipini şu kadar kolaylaştırır:

python -m Instagram Hesabındaki Resim ve Videoları ensurepip

Belki de venvbunu sanal bir ortamda yapmak için yapılan bir çağrıdan önce gelir .

Garantili pip PEP 453'te açıklanmaktadır .


10

Ubuntu'da:

sudo apt-get install python-virtualenv

Paket python-pipbir bağımlılıktır, bu yüzden de yüklenecektir.


1
python-virtualenv hem virtualenv hem de pip'i kuracaktır. Bundan sonra sadece Python sanal ortamları oluşturmak için virtualenv çalıştırın. Ve diğer paketleri yüklemek için sanal env içinden pip çalıştırın.
jemeshsu

2
Bu gerçekten en güzel seçenektir. İşletim sisteminize bir şeyler kurmanın "uygun" yolu işletim sistemi yükleyici sisteminizi kullanmaktır ! Bundan sonra pip, tercihen a ile oynayabilir virtualenvve hiçbirisudo için asla kullanamazsınız
MestreLion

Ne yazık ki, işletim sistemi sağlanan sürümleri pipbazen önemli hatalar var, bu yüzden genellikle get-pip.pypython.org sağlanan sağlanan kullanarak .
RichVel

@RichVel, karşılaştığınız önemli hataları açıklayabilir misiniz?
danielpops

1
@danielpops - bir örnek Ubuntu 16.04.1'deki bu pip sorunudur , ancak bazı sürümler ve kullanım durumlarıyla ilgili başka sorunlar olabilir.
Mart'ta RichVel

5

Bu prosedürü iş yerinde kullanmamız için yaptım.

cd ~
curl -s https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz | tar xvz
cd pip-1.3.1
python setup.py install --user
cd ~
rm -rf pip-1.3.1

$HOME/.local/bin/pip install --user --upgrade pip distribute virtualenvwrapper

# Might want these three in your .bashrc
export PATH=$PATH:$HOME/.local/bin
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS="--distribute"
source $HOME/.local/bin/virtualenvwrapper.sh

mkvirtualenv mypy
workon mypy
pip install --upgrade distribute
pip install pudb # Or whatever other nice package you might want.

Güvenlik için kilit noktalar:

  1. curl ssl doğrulaması yapar. wget yapmaz.
  2. Pip 1.3.1'den başlayarak pip de SSL doğrulaması yapar.
  3. Pithi tarball'ı github tarball'dan daha az kullanıcı yükleyebilir.

5

Güncelleme: Temmuz 2013 itibariyle bu proje artık sürdürülmemektedir. Yazar pyenv kullanmanızı önerir . (pyenv'in virtualenv için yerleşik desteği yoktur, ancak onunla iyi oynar.)

Pythonbrew , python için bir sürüm yöneticisidir ve virtualenv desteği ile birlikte gelir.

Pythonbrew ve venvs kullanarak bir python sürümü kurduktan sonra gerçekten kolaydır:

# Initializes the virtualenv 
pythonbrew venv init

# Create a virtual/sandboxed environment 
pythonbrew venv create mycoolbundle  

# Use it 
pythonbrew venv use mycoolbundle

@ kermit666 teşekkürler. Cevabımı modası geçmiş olarak işaretlemenin tercih edilen yolu ne olurdu? Sadece silmek istiyor musunuz?
kioopi

1
kuyu, ya mesela ile cevap o (önerdiğin pythonbrew kavram bakımından benzer olan benim yorumum, gelen bağlantıyı takip insanlar için pyenv kullanımıyla ilgili talimatlar vardır) olduğu gibi bırakabilirsiniz veya daha iyisi düzenleyebilirsiniz Güncelleme Eylül 2013 tarafından yeni talimatları ekleyerek. Belki pythonbrew gelecekte bir kez daha aktif olacak, bu yüzden eski talimatlarınızı silmem. Daha fazla bilgi için meta'ya bakınız .
metakermit

Benim Bkz cevabı hakkında pyenviyi çalışıyor.
RichVel

3

Sudo python setup.py install yapmak için herhangi bir sorun yoktur, ne yapmak istediğinizden eminseniz.

Aradaki fark, .py dosyalarının kopyalanması için işletim sisteminizin site paketleri dizinini bir hedef olarak kullanmasıdır.

yani, pip işletim sistemi genişliğinde erişilebilir olmasını istiyorsanız, muhtemelen bu yoludur. Başkalarının yolunun kötü olduğunu söylemiyorum, ama bu muhtemelen yeterince adil.


1
Evet, bu şekilde kullandım. Ve bir süre sonra, pip freezebeni çağırmak neredeyse donmuştu - paketlerin listesi, sistem çapında kurulmak çok uzun sürdü. O zamandan beri "no sudo" ve "os-wide" python paket kurulumunu kullanmanızı şiddetle tavsiye ediyorum.
Jan Vlcinsky


2

Geçenlerde aynı problemle karşılaştım. Ben her zaman bir sanalenv zihniyet için daha kısmi hale, bu yüzden benim sorunum global veya kullanıcı site paketleri dizinine dağıtım yüklemeden pip ile sanalenv yüklemek oldu. Bunu yapmak için dağıtımı, pip'i ve virtualenv'i manuel olarak indirdim ve her biri için “python setup.py install --prefix ~ / .local / python-private” (geçici bir PYTHONPATH = ~ / .local / python-private), böylece kurulum komut dosyaları dağıtmayı bulabilir). Virtualenv komut dosyasını PATH'ımdaki başka bir dizine taşıdım ve dağıttım ve dağıtın ve virtualenv modülleri sys.path'de bulunabilir. Tada: / usr, / usr / local veya kullanıcı site-paketleri dizinine hiçbir şey kurmadım, ancak virtualenv'i her yerde çalıştırabilirim ve bu sanal ortamda pip alıyorum.



2

Eski işletim sistemi tarafından sağlanan Python sürümlerinin üzerine, bir sanal ağın içinde bile yükseltilmiş SSL modüllerini yüklerken çeşitli sorunlar yaşadım (aşağıya bakın), bu yüzden şimdi kullanıyorum pyenv.

pyenv , yeni bir Python sürümünün kurulmasını çok kolaylaştırır ve virtualenvs'i destekler. Başlamak, diğer cevaplarda listelenen virtualenv tariflerinden çok daha kolaydır:

  • Mac'te yazın brew install pyenvve Linux'ta pyenv-installer kullanın
  • bu size yerleşik sanal yayın desteği ve Python sürüm geçişi sağlar (gerekirse)
  • Python 2 veya 3 ile iyi çalışır, aynı anda birçok sürümü yüklü olabilir

Bu, "yeni Python" sürümünü ve virtualenv'i Python sisteminden izole etmek için çok iyi çalışır. Daha yeni bir Python'u (2.7.9 sonrası) kolayca kullanabileceğiniz için, SSL modülleri zaten yükseltilmiştir ve tabii ki sistem Python modüllerinden izole edilmiş herhangi bir modern sanal kurulum gibi.

Birkaç güzel öğretici:

pyenv-virtualenvEklenti şimdi inşa edilmiştir - türüpyenv commands | grep virtualenv kontrol etmek. Başlamak için pyenv-virtualenvwrapper eklentisini kullanmazdım - virtualenvwrapper'ın yaptığı şeylerin çoğunu kapsadığı için pyenv'e daha entegre olan pyenv-virtualenv ile nasıl başa çıkacağınızı görün.

pyenvmodellenmiştir rbenv(Ruby sürüm geçişi için iyi bir araçtır) ve tek bağımlılığı bash'tır.

  • pyenv çok benzer bir şekilde adlandırılmamış pyvenv- bu, son Python 3 sürümlerinin bir parçası olan ve Python sürüm geçişini işlemeyen bir sanalenv eşdeğeri

Uyarılar

Pyenv hakkında iki uyarı:

  1. Sadece bash veya benzer bir kabuktan çalışır - veya daha spesifik olarak pyenv-virtualenv eklentisi hoşlanmaz dash, yani/bin/sh Ubuntu ya da Debian üzerinde.
  2. Ansible gibibash --login otomasyon araçlarıyla elde edilmesi her zaman kolay olmayan etkileşimli bir giriş kabuğundan (örn. Bir terminal kullanarak) çalıştırılmalıdır .

Bu nedenle pyenv etkileşimli kullanım için en iyisidir ve komut dosyası sunucuları için daha az iyidir.

SSL modülü sorunları

pyenvKullanmanın bir nedeni, daha eski sistem tarafından sağlanan Python sürümlerini kullanırken Python SSL modüllerini yükseltme konusunda sık sık sorun yaşanmasıdır:


2
  • Bunu python'un kendisine bir şey yüklemeden yapabilirsiniz.

  • Sudo ya da herhangi bir ayrıcalığa ihtiyacınız yok.

  • virtualenvTar dosyasının en son sürümünü bulmanıza gerek yoktur

  • İşleri güncel tutmak için bash komut dosyasındaki sürüm bilgilerini düzenlemeniz gerekmez.

  • Yüklemeniz curl/ wgetveya kurmanız gerekmez tar, pipveyaeasy_install

  • bu 2.7 için olduğu gibi 3.X için de geçerli

Aşağıdakileri şuraya kaydedin /tmp/initvenv.py:

dan gelecek ithalat print_function

import os, sys, shutil, tempfile, subprocess, tarfile, hashlib

try:
    from urllib2 import urlopen
except ImportError:
    from urllib.request import urlopen

tmp_dir = tempfile.mkdtemp(prefix='initvenv_')
try:
    # read the latest version from PyPI
    f = urlopen("https://pypi.python.org/pypi/virtualenv/")
    # retrieve the .tar.gz file
    tar_found = False
    url = None
    sha256 = None
    for line in f.read().splitlines():
        if isinstance(line, bytes):
            line = line.decode('utf-8')
        if tar_found:
            if 'sha256' in line:
                sha256 = line.split('data-clipboard-text')[1].split('"')[1]
                break
            continue
        if not tar_found and 'tar.gz">' not in line:
            continue
        tar_found = True
        for url in line.split('"'):
            if url.startswith('https'):
                break
    else:
        print('tar.gz not found')
        sys.exit(1)
    file_name = url.rsplit('/', 1)[1]
    print(file_name)
    os.chdir(tmp_dir)
    data = urlopen(url).read()
    data_sha256 = hashlib.sha256(data).hexdigest()
    if sha256 != data_sha256:
        print('sha256 not correct')
        print(sha256)
        print(data_sha256)
        sys.exit(1)
    with open(file_name, 'wb') as fp:
        fp.write(data)
    tar = tarfile.open(file_name)
    tar.extractall()
    tar.close()
    os.chdir(file_name.replace('.tar.gz', ''))
    print(subprocess.check_output([sys.executable, 'virtualenv.py'] +
                                  [sys.argv[1]]).decode('utf-8'), end='')
    if len(sys.argv) > 2:
        print(subprocess.check_output([
            os.path.join(sys.argv[1], 'bin', 'pip'), 'install', 'virtualenv'] +

            sys.argv[2:]).decode('utf-8'), end='')
except:
    raise
finally:
    shutil.rmtree(tmp_dir)  # always clean up

ve olarak kullan

python_binary_to_use_in_venv /tmp/initvenv.py your_venv_name [optional packages]

örneğin (gerçekten distributeuyumluluk katmanına ihtiyacınız varsa setuptools)

python /tmp/initvenv.py venv distribute

Lütfen eski python sürümlerinde bunun size InsecurePlatformWarning¹ verebileceğini unutmayın .

Virtualenv'inizi (adınız gibi venv) aldıktan sonra , virtualenvyeni kurulmuş olanı kullanarak başka bir virtualenv kurabilirsiniz :

venv/bin/virtualenv venv2

virtualenvwrapper

Bir kerelik kurulumdan sonra virtualenvwrapper'a da göz atmanızı öneririz :

% /opt/python/2.7.10/bin/python /tmp/initvenv.py venv virtualenvwrapper

ve etkinleştirme (oturum açma komut dosyasından yapılabilir):

% source venv/bin/virtualenvwrapper.sh

gibi şeyler yapabilirsiniz:

% mktmpenv 
New python executable in tmp-17bdc3054a46b2b/bin/python
Installing setuptools, pip, wheel...done.
This is a temporary environment. It will be deleted when you run 'deactivate'.
(tmp-17bdc3054a46b2b)% 

Warning Uyarıyı bastırmanın bir yolunu bulamadım. Çözülebilir pipve / veya çözülebilir request, ancak geliştiriciler nedenlerini birbirlerine işaret ederler. Kullandığım python sürümünü en son sürüme yükseltmek için genellikle gerçekçi olmayan bir öneri aldım. Bunun Linux Mint 17 kurulumumu kıracağından eminim. Neyse ki pippaketleri önbelleğe alır, bu nedenle Uyarı paket kurulumu başına yalnızca bir kez yapılır.


Uyarı InsecurePlatformWarning(yani Python 2.7.9 sürümünden daha eskiyse uyarı), PyPI'den ek paketler pyopenssl, pyasn1, ndg-httpsclient takılarak düzeltilebilir. (SSL, sertifikaları çözme, PyOpenSSL aracılığıyla https desteği.) Doğru protokoller olmadan herhangi bir kodu indirmek ve çalıştırmak için yeterince güvenli değildir.
hynekcer

@hynekcer Bunu deneyeceğim. Kendime neden pip ve / veya isteğin uygun (eski) python sürümleri için bu paketlere bağımlı hale getirilmediğini soruyorum.
Anthon

0

Virtualenv resmi sitesinde iyi talimatlar var. https://pypi.python.org/pypi/virtualenv

Temelde, yüklemek I did Ne pipile sudo easy_install pipdaha sonra kullanılan, sudo pip install virtualenvdaha sonra bir ortam oluşturuldu: virtualenv my_env(istediğini bunun adı), ben yaptım şu: virtualenv --distribute my_env; yüklü distributeve pipsanal benim.

Yine, virtualenvsayfadaki talimatları izleyin .

Ruby'den gelen bir güçlük; P


0

İşte virtualenvwrapper yüklemek için güzel bir yol (bir güncelleme bu ).

Virtualenv-1.11.4'ü indirin (en son bilgiyi burada bulabilirsiniz ), Açın , açınterminal

# Create a bootstrapenv and activate it:
$ cd ~
$ python <path to unzipped folder>/virtualenv.py bootstrapenv
$ source bootstrapenv/bin/activate

# Install virtualenvwrapper:
$ pip install virtualenvwrapper
$ mkdir -p ~/bootstrapenv/Envs

# append it to file `.bashrc`
$ vi ~/.bashrc
  source ~/bootstrapenv/bin/activate
  export WORKON_HOME=~/bootstrapenv/Envs
  source ~/bootstrapenv/bin/virtualenvwrapper.sh

# run it now.
$ source ~/.bashrc

İşte bu, şimdi kullanabilirsiniz mkvirtualenv env1, lsvirtualenv..etc

Not: İndirilenler klasörlerinden virtualenv-1.11.4ve virtualenv-1.11.4.zipklasörlerinden silebilirsiniz .


0

İyi haber şu ki, python3.4 yüklediyseniz, pyvenv zaten yüklüdür. Bu yüzden sadece

pyvenv project_dir
source project_dir/bin/activate
python --version   
python 3.4.*

Şimdi bu sanal ortamda, bu proje için modülleri kurmak için pip'i kullanabilirsiniz.

Bu sanal ortamı bırak, sadece

deactivate
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.