Güncellenme Tarihi: 2019-05-11: Bu yazı çoğunlukla bahseder virtualenv, ancak Python belgesine göre, modül kurulumuyla ilgili Python 3.5 " venvsanal ortamlar oluşturmak için kullanımı artık tavsiye edilir " den beri virtualenv, 3.4 öncesi Python sürümleri için bir alternatiftir. .
güncelleme: 2018-08-17: beri Conda-4.4.0 kullanım condaiçin activatetüm platformlarda Kobrayla
güncellendi: 2017-03-27: PEP 513 - manylinuxPyPI için ikili dosyalar
güncellendi: 2016-08-19: Continuum Anaconda Seçeneği
Bu bir şekilde bir easy_install / pip veya apt-get kopyasıdır .
İçin küresel Python paketleri, kullanım ya Ubuntu Yazılım Merkezi apt apt-get veya sinaptik
Ubuntu, Python'u birçok önemli işlev için kullanır, bu nedenle Python'a müdahale etmek işletim sisteminizi bozabilir. Bu kullandığım asla ana sebebi pipbenim Ubuntu sisteminde, ama bunun yerine kullanmak ya Ubuntu Yazılım Merkezi, sinaptik , apt-getya daha yeni sadece apt, tümü varsayılan olarak gelen paketleri yükleme hangi Ubuntu depo . Bu paketler test edilir, genellikle önceden derlenir, böylece daha hızlı kurulurlar ve sonunda Ubuntu için tasarlanırlar. Ek olarak, gerekli tüm bağımlılıklar da kurulur ve geri yüklenmeleri için bir yükleme günlüğü tutulur. Çoğu paketin Launchpad repolarına sahip olduğunu düşünüyorum, böylece sorunları dosyalayabilirsiniz .
Her iki Ubuntu paketini kullanmanın bir başka nedeni de, bazen bu Python paketlerinin, nereden indirdiğinize bağlı olarak farklı isimlere sahip olmasıdır. Python-chardet, bir zamanlar PyPI'de bir şey ve Ubuntu deposunda bir başka şey adı verilen bir paket örneğidir. Bu nedenle pip install requests, Ubuntu sürümü farklı bir isme sahip olduğundan, chardet'in sisteminizde zaten kurulu olduğunu farketmeyeceksiniz ve sonuç olarak sisteminizi küçük önemsiz bir şekilde bozacak ama yine de neden bunu yapacaksınız.
Genel olarak, güvenilir kodu yalnızca işletim sisteminize yüklemek istiyorsunuz. Bu yüzden yazarken gergin olmalısın$ sudo pip <anything-could-be-very-bad> .
Son olarak bazı şeylerin Ubuntu paketlerinden herhangi birinin kullanılmasıyla daha kolaydır. Örneğin pip install numpy, gfortran, atlas-dev, blas-dev ve lapack-dev'i yüklemediğiniz sürece numpy & scipy'yi yüklemeye çalışırsanız, sonsuz bir derleme hatası akışı göreceksiniz. Ancak, Ubuntu deposu üzerinden numpy & scipy kurmak ...
$ sudo apt-get install python-numpy python-scipy
Şanslısınız, çünkü varolan en yaygın olarak desteklenen ve güncellenen dağıtımlardan biri olan Ubuntu kullanıyorsunuz. Büyük olasılıkla ihtiyaç duyacağınız her Python paketi Ubuntu deposunda ve muhtemelen zaten makinenize kurulmuş durumda. Her 6 ayda bir, Ubuntu’nun son dağıtımıyla yeni bir paket döngüsü çıkacak.
% 100 paketin Ubuntu sisteminize herhangi bir şekilde müdahale etmeyeceğinden eminseniz, pip kullanarak yükleyebilirsiniz ve Ubuntu, dağıtım paketlerini adı verilen bir klasöre yerleştirerek bu paketleri dağıtım paketlerinden ayrı tutmak için yeterince güzeldir. dist-packages/. Ubuntu deposunda hem pip, virtualenv hem de setuptools bulunur. Bununla birlikte, ikinci Wojciech'in virtualenv'i kullanmasını önerdim.
İçin kişisel Python projelerinde bir virtualenv Pip ve tekerleği kullanın
En son sürüme ihtiyacınız varsa veya modül Ubuntu deposunda değilse, bir sanal aygıt başlatın ve paketi yüklemek için pip kullanın. Her ne kadar pip ve setuptools birleştiyse de, IMO pip kolay kurulum veya distutils yerine tercih edilir, çünkü paket dosya sisteminize kopyalanmadan önce paket tamamen indirilip inşa edilinceye kadar her zaman bekler ve bir esinti yükseltme veya kaldırır. Birçok yönden apt-get'e benzer, çünkü genellikle bağımlılıkları iyi idare eder. Bununla birlikte , bazı bağımlılıkları kendiniz halletmeniz gerekebilir , ancak PEP 513 kabul edildiğinden beri , şimdi manylinuxUbuntu ve Fedora gibi popüler Linux dağıtımları için Python Paket Endeksi'nde (PyPI) ikili dosyalar var .Örneğin numpy ve SciPy için yukarıda yapmak belirtildiği gibi Ubuntu depolarından yüklediğinizden emin gfortran, atlas-dev, blas-dev ve LAPACK-dev Örneğin, her iki NumPy ve scipy artık Ubuntu için dağıtılan manylinuxtekerlekler varsayılan tarafından kullanılarak OpenBLAS yerine ATLAS'ın Hala kullanarak kaynaktan bunları inşa edebilirsiniz pip seçenekleri --no-use-wheelya--no-binary <format control> .
~$ sudo apt-get install gfortran libblas-dev liblapack-dev libatlas-dev python-virtualenv
~$ mkdir ~/.venvs
~$ virtualenv ~/.venvs/my_py_proj
~$ source ~/.venvs/my_py_proj/bin/activate
~(my_py_proj)$ pip install --no-use-wheel numpy scipy
sudoersPip ile kurulum şemasını kullanarak pip, setuptools, virtualenv veya jantların güncellenmiş versiyonlarını kişisel profilinize yüklemek için aşağıdaki "Girişinde değilsiniz" bölümüne bakın --user. Pip'i kişisel kullanımınız için JF Sebastian'ın yaptığı açıklamada belirtildiği gibi başka bir yanıtla güncellemek için kullanabilirsiniz . NOT: -mpip güncelleştirirken gerçekten yalnızca MS Windows'ta gereklidir .
python -m pip install --user pip setuptools wheel virtualenv
Pip'in yeni sürümleri tekerlekleri otomatik olarak önbelleğe alır; bu nedenle aşağıdakiler yalnızca eski pip sürümleri için yararlıdır. Bunları defalarca takmanız gerekebileceğinden, bir tekerlek yuvası oluşturmak için pipolu tekerlek kullanmayı düşünün. Tekerlek, virtualenvv13.0.0’dan beri zaten dahil edilmiştir, bu nedenle sürümünüz virtualenvçok eskiyse, önce tekerleği takmanız gerekebilir.
~(my_py_proj)$ pip install wheel # only for virtualenv < v13.0.0
~(my_py_proj)$ pip wheel --no-use-wheel numpy scipy
Bu, farklı bir dizin belirtmek için <cwd>/wheelhousekullanılacak ikili tekerlek dosyaları yaratacaktır -d. Şimdi başka bir sanal aygıt başlattıysanız ve daha önce oluşturduğunuz aynı paketlere ihtiyacınız varsa, bunları kullanarak tekerlekli evinizden yükleyebilirsiniz.pip install --find-links=<fullpath>/wheelhouse
Python belgelerine Python Modüllerini Kurma ve Python Paket Dizini ana sayfasındaki paketleri kurma bölümünü okuyun . Ayrıca pip , venv , virtualenv ve tekerlek .
İçeride değilseniz sudoersve virtualenvyüklenmemişseniz.
Sanal ortam kullanmak için ya da root ayrıcalıklarına sahip olmayan bir Linux paylaşımı kullanıyorsanız, ya --userda --home=<wherever-you-want>Python kurulum şemalarını Python ile distutilskullanmak, paketleri istediğiniz değere site.USERBASEya da istediğiniz yere kurar . Pip'in daha yeni sürümleri de bir --userseçeneğe sahiptir. Kullanmayın sudo!
pip install --user virtualenv
Eğer Pip'in Linux sürümü çok eskiyse, ayarların ayarlanması gibi uzantıları oluşturan bazı paketlerin --install-optionözel seçeneklerinin bazı setup.pykomut dosyalarına geçirilmesinde yararlı olan kurulum seçeneklerini kullanabilirsiniz PREFIX. Dağıtımı ayıklamanız ve distutilspaketi eski okul biçimini yazarak yüklemek için kullanmanız gerekebilir python setup install [options]. Bazı okuma belgeleri kurar ve distutilsdokümantasyon yardımcı olabilir.
Python eklemek için güzel yeterlidir site.USERBASEsizin için PYTHONPATHdeğişiklikler sadece seni etkileyecek böylece, başka bir şey önden. İçin popüler bir yer --homeolduğunu ~/.local. Tam dosya yapısı ve özellikle site paketlerinizin bulunduğu yer için Python modülü kurulum kılavuzuna bakın . Not : Kullanmak eğer --homekurulum şemasını ardından eklemek gerekebilir PYTHONPATHkullanarak ortam değişkeni exportsenin içinde .bashrc, .bash_profilePython kullanılabilir olması yerelleştirilmiş paketleri veya kabuğunda.
Matematik, Bilim, Veri veya Kişisel Projeler için Continuum Anaconda Python Kullanın
Matematik, fen bilgisi veya veri için Python kullanıyorsanız, IMO gerçekten iyi bir seçenek Anaconda-Python Dağıtımı veya Anaconda, Inc. (daha önce Continuum Analytics olarak da bilinir ) tarafından yayımlanan daha temel miniconda dağıtımıdır . Herkes Anaconda'yı kişisel projeler için kullanmaktan faydalanabilse de , varsayılan kurulum NumPy, SciPy, Pandas ve Matplotlib gibi 500'den fazla matematik ve bilim paketi içerirken , miniconda sadece Anaconda-Python ve conda çevre yöneticisini kurar. Anaconda sadece kendi kişisel profiline giriyor, yani: ve Anaconda'nın kişisel yoluna gitmeni önlüyor ya da değiştirmeni tavsiye etmeni tavsiye ediyor /home/<user>/~/.bashrc~/.bash_profile$PATH conda.shsenin içinde ~/.bashrchangi kullanmanızı sağlar conda activate <env|default is base>anaconda başlatmak için - bu sadece etkiler sizi - sistem yolu değişmez . Bu nedenle sen do not kök erişimi ya da ihtiyaç sudoAnaconda kullanmak! Zaten kişisel yoluna Anaconda-Python, miniconda veya Conda eklediyseniz, ardından kaldırmak gerekir PATH, hesabınızla ilgili ihracat ~/.bashrciçin ve güncelleştirme yeni öneri sistem Python yine birinci olacak, böylece.
Bu, --userson bölümde açıkladığım seçeneğe biraz benziyor, ancak Python için yalnızca paketler için geçerli değil. Bu nedenle Anaconda, sistem Python'dan tamamen ayrıdır, sistem Python'unuzu etkilemez ve yalnızca onu kullanabilir veya değiştirebilirsiniz. Yeni bir Python sürümü ve tüm kitaplıklarını yüklediğinden, en az 200 MB odaya ihtiyacınız olacaktır, ancak Anaconda ile yapabileceğiniz harika şeyler için önemli olan kitaplıkları önbelleğe almak ve yönetmek için çok zekicedir.
Anaconda, çevrimiçi bir depoda (eski adıyla binstar ) bağımlılıkların gerektirdiği bir Python ikili dosyaları ve kitaplıkları koleksiyonuna sahiptir ve ayrıca kullanıcı paketlerini farklı "kanallar" olarak barındırmaktadır. Anaconda tarafından kullanılan paket yöneticisi conda, varsayılan olarak Anaconda'dan paket yükler, ancak -cseçeneği kullanarak farklı bir "kanal" işaret edebilirsiniz .
Paketleri condaaynen pipşöyle yükleyin :
$ conda install -c pvlib pvlib # install pvlib pkg from pvlib channel
Ama condaçok daha fazlasını yapabilir! Aynı zamanda olduğu gibi sanal ortamlar yaratabilir ve yönetebilir virtualenv. Bu nedenle, Anaconda sanal ortamlar yarattığından, pippaket yöneticisi, paketleri PyPI'den bir Anaconda ortamına kök ya da olmadan yüklemek için kullanılabilir sudo. Do not kullanmak sudoAnaconda ile! Uyarı! Karışım sırasında pipve condabir Anaconda ortamında, ambalaj bağımlılıklarını daha dikkatli yönetmeniz gerekecek olsa bile dikkatli olun. pipConda ortamında başka bir seçenek conda forge kanalını kullanmaktır.ve aynı zamanda bunu varsayılan kanal olarak conda-forge ile taze bir conda ortamında yapmak için de en iyisidir. Son çare olarak, PyPI dışında hiçbir yerde bir paket bulamıyorsanız, kullanmayı düşünün --no-depsve kalan bağımlılıkları manuel olarak kullanarak kurun conda.
Anaconda aynı zamanda bu araca aşina iseniz , Ruby RVM'ye bazı şekillerde benzer . Anaconda condaayrıca, farklı Python sürümleriyle sanal ortamlar oluşturmanıza da olanak sağlar . örneğin : conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seabornPython-3.5 kullanarak yeni bir ortamda bilimsel / veri bilimi yığını oluşturacak py35sci. Kullanarak ortamları değiştirebilirsiniz conda. Conda-4.4.0 beri bu şimdi farklı etmek virtualenvhangi kullanımlara source venv/bin/activatekarşı, ancak önceki Conda-4.4.0conda komutları vardı aynı şekilde virtualenvve aynı zamanda kullanılan source:
# AFTER conda-4.4
~/Projects/myproj $ conda activate py35sci
# BEFORE conda-4.4
~/Projects/myproj $ source activate py35sci
Ama bekleyin dahası var! Anaconda , Anaconda kanalından istatistiksel programlama için R gibi farklı diller de kurabilir . Conda için oluşturulmuş paket dağıtımlarını yüklemek için kendi kanalınızı bile ayarlayabilirsiniz . Conda-forge , belirtildiği gibi , conda-forge Anaconda kanalında PyPI üzerindeki birçok paketin otomatik yapımını sürdürmektedir .r
son söz
Kişisel gereksinimlerinize ve erişiminize bağlı olarak Python projelerinizi Linux'ta sürdürmek için birçok seçenek vardır. Bununla birlikte, bu cevabdan alacağınızı umduğum bir şey varsa Python paketlerini yüklemek için neredeyse hiç kullanmanıza gerek kalmamasıdırsudo . Kullanımı, sudobir şeylerin yanlış gittiği konusunda size bir koku olmalıdır . Uyarıldın.
İyi şanslar ve mutlu kodlama!