Python paketlerini kurmak için pip ve MacPorts kullanma


12

Ben (bir piton paketini yükleyebilir örneğin , numpybenim Mac ya MacPorts yoluyla):

port install py-numpy

veya pip:

pip install numpy

Her yaklaşımın genel artıları / eksileri nelerdir? Her yaklaşım ne zaman kullanılmalıdır?

  • Ne zaman diğerini tercih etmeliyim?
  • Yüklediğim paketin küçük veya büyük olması önemli mi (örn. numpy)?
  • Ben kullanıyorum piton sürümüne bağlıdır mu ( 2.xVS. 3.xveya Apple'ın pythonvs MacPort en python)?
  • pythonMac bilgisayarımda yüklü birden çok sürümünün olması önemli mi ?
  • Aynı anda kullanılabilirler mi?

Ne zaman diğeri üzerinde seçim hakkında bazı tartışma ile her yaklaşımın bazı artılarını / eksilerini kısa bir listesi olan bir cevap bekliyorum.


İlgili, ancak çok spesifik: stackoverflow.com/questions/16895282/… . Ben sadece genel python paketleri istiyorum matplotlib.
jvriesem

AFAIK bunlar zaten yüklü - terminali kontrol edebilirsiniz:> python ve sonraki komut> nump'yi np olarak içe aktarın ve herhangi bir hata yoksa, o zaman var. Alternatif çözüm continuum.io/downloads adresinden anaconda kullanmaktır - birçok özelliğe sahiptir ve pip ile daha fazla kurulum anaconda klasörünüze gidecektir.
Yoan

@Yoan: numpysadece bir örnek. Genel olarak paketlerin kurulumunu soruyorum.
jvriesem

Yanıtlar:


3

Aynı anda kullanılabilirler ve ikisini karıştırmak arasında bir sorun olmamalıdır (bir tür büyük uyarı ve bir gotcha ile ...)

Uyarı

Uyarı, macports / homebrew ve pip'in her birinin diğerine karşı kurmuş olduğunun farkında olmayacağıdır.

Örneğin, Mac'inize python 3.6 yüklediğinizi varsayalım. Sen istiyorsun nltkMacPorts o sürümü için teknik olarak kullanılamaz, hangi ama pip üzerindedir. Yani pip üzerine yükleyin. İki ay sonra Macports'a yüklendiğini görürsünüz ve yüklemeyi seçersiniz. Şimdi nltkmakinenizde iki farklı sürümü var , bu yüzden uyarı emptor .

Gotcha

Macports ile pip kullanıyorsanız, Macports aracılığıyla kurulan ve o python sürümüyle ilişkilendirilen pip olduğundan emin olmanız gerekir. Yani, örneğin, bir py35-pip, py36-pip, vb. Göreceksiniz.

Uygun pip'i yükledikten sonra Macport'un selectkomutunu, uygun python sürümü ile etkinleştirildiğinden emin olmak için kullanırsınız:

sudo port select

Benim tecrübelerim, MacPorts tarafından oluşturulan Python global alanına modül kurmak çatışmalara neden oluyor. Er ya da geç MacPorts, pip tarafından önceden yüklediğiniz bir bağlantı noktasını yüklemeye çalışır. Bu bağlantı noktasında bulunan ancak MacPorts tarafından yüklenmeyen bir dosya hakkında bir hata iletisi verir. Sanırım @ IanC'nin cevabı daha iyi: sadece MacPorts kullanarak global Python alanına yükleyin, sadece pip kullanarak sanal ortamlara kurun.
Jim DeLaHunt

4

pipPaket kurulumlarını yönetmek için Python-yerel aracı olduğu için kullanmalısınız , ancak temel Python kurulumunuza bir şey yüklememelisiniz. Her şeyi makinenizdeki temel Python kurulumunuza pip-kuruyorsanız, birden fazla yazılım deposu arasında sabit sürüm bağımlılıklarını sıralamak zorunda kalabilirsiniz.

Bunun yerine, virtualenv'i pip-install ve ardından her sanal ortam için farklı, sanal Python kurulumlarını ve pip ile ilişkili tüm paket paketlerini yönetmek için kullanmalısınız.

Bu, bağımlılık yönetimi cehenneminde beklemek zorunda kalmadan , örneğin, beautifulsoupbir yazılım deposundaki 1.x beautifulsoupile başka bir depodaki 2.x ile çalışmanızı sağlar .


0

Ben sadece Homebrew , MacPorts ve pip3 kullanarak aynı paketi arama hızlı bir test yaptım :

brew search numpy
sudo port search --name --glob '*numpy'
pip3 search numpy

MacPorts ve PIP3 aynı paketi (versiyon vardı 1.18.1 , oysa) Homebrew sürümü vardı 1.16 .

Başkalarıyla işbirliği yaparken, geliştirme ortamlarınızın nasıl yapılandırıldığına karar vermek en iyisidir, yoksa anormalliklere çarpmaya ve farklı test sonuçları elde etmeye başlarsınız. Bu nedenle, en iyi araç hepinizin kabul ettiği araçtır ;-)

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.