Arch'a python paketlerini kurmanın önerilen yolu


37

Python paketlerini Arch'a kurmanın önerilen yolu nedir? AUR'da onları aramak ve oradan yüklemek (veya PKGBUILDkendiniz bir paket yapmak için bir dosya oluşturmak ) veya kullanmak pip?

Pacman ve AUR'dan malzeme yükleyerek başladım ve pippaketlerle karıştırmanın akıllıca olup olmadığını bilmiyorum .

Yanıtlar:


34

Tüm kullanıcılar için python paketlerine ihtiyacınız yoksa, bunları evinize bu şekilde yükleyebilirsiniz:

pip install --user packagename

Evinize kurulum yapmak paket yöneticisi ile çakışmaz.

Varsayılan pip install --userolarak, "kullanıcı sitesi" dizininize yüklenir. Genellikle böyle bir şeydir: /home/lesmana/.local/lib/python3.6/site-packages.

Aşağıdaki komut, diğerleri arasında, "kullanıcı siteniz" konumunuzu basacaktır:

python -m site

Yükleme konumunu özelleştirmek için:

PYTHONUSERBASE=$HOME/some/dir pip install --user packagename

bu, altındaki her şeyi yükler $HOME/some/dir

koşmak:

PYTHONUSERBASE=$HOME/some/dir $HOME/some/dir/bin/progname

Daha fazla bilgi için pip kılavuzuna bakın .


python paketini tüm kullanıcılar için istiyorsanız, yüklemek için en iyi yer /opt. örneğin böyle:

PYTHONUSERBASE=/opt/packagedir pip install packagename

(eksik olduğuna dikkat edin --user)

ve yukarıdaki gibi koşmak:

PYTHONUSERBASE=/opt/packagedir /opt/packagedir/bin/progname

Arka plan açıklaması: /optGenellikle yerel kullanıcı veya sistem yöneticisinin kendi malzemelerini yükleyebileceği bir dizin olarak gnu / linux dağıtımları tarafından onaylanır. Başka bir deyişle: Dağıtım paket yöneticisi genellikle dokunmaz /opt. bu daha fazla veya daha az Dosya Sistemi Hiyerarşisi Standardı'nda standardize edilmiştir.

Kullanıcıları için konfor için hala bir sarıcı senaryo yazmak ve yerleştirmek isteyeceksiniz /binya /usr/bin. Bu hala dağıtım paket yöneticisi ile çarpışma riski taşımaktadır, ancak en azından sadece bir sarmalayıcı komut dosyası. Bu yüzden yapılabilecek hasar minimumdur. Sarmalayıcı komut dosyasını, buna benzer bir şekilde adlandırabilir local-fooveya custom-foodağıtım paketi yöneticisi ile çarpışma riskini en aza indirgemek için kullanabilirsiniz.

Alternatif olarak , sarmalayıcı komut dosyanızı orada PATHeklemek /opt/binve yerleştirmek için değişiklik yapabilirsiniz . Ancak bu yine PATH, dağıtım paketi yöneticisi tarafından tekrar yazılabilecek tanımlanmış bir (veya bazı) sistem dosyasını değiştirmenizi gerektirir .

Kısacası: tüm kullanıcılar için yüklemek istiyorsanız, bunu yapın /opt. Sarıcı komut dosyasını rahatlık için nereye koyacağınız bir karar verme ifadesidir.

/optDosya Sistemi Hiyerarşi Standardı Hakkında Daha Fazla Bilgi :


IMHO, bu, sanal ortamları ayarlamak için bir işaretçi ile birlikte, kabul edilen cevap olmalıdır.
ttsiodras

1
Ugh. Daha yeni pythonve keşke bunu sudiopinglemeden önce bilseydim . Bunun için teşekkürler.
Hendy

Ne olursa yapmak tüm kullanıcılar için piton paketlerini ihtiyaç?
Mehrdad

@Mehrdad yanıtını güncelledi
lesmana

@lesmana: Teşekkürler! Ama bunun önerilen yol olduğuna emin misin? İlk defa Python için / opt kullanmayı önerdiğini duydum ...
Mehrdad

9

Genellikle, bir dağıtımda, dağıtımın paket yöneticisini kullanmanız önerilir. Elbette pip (veya perl dünyasında, cpan) kullanarak bir şeyler kurabilir veya bir şeyler kendiniz derleyip kurabilirsiniz. Ancak, bunu yaptığınızda, dağıtımın paket yöneticisi onlar hakkında hiçbir şey bilmez ve bağımlılıklarını veya güncellemelerini yönetemez.

Pip kullanmak, kendi paketinizi derlemek ve kurmakla hemen hemen aynıdır. Gerekirse yapın, ancak dağıtımın paket yöneticisini tercih edin.


2
Kesinlikle kullanmaktan kaçınmalısınız pip(küresel en azından aracılığıyla sudoveya root olarak) - Biraz oldukça var site-package/...zaman zaten hatalar var pacmanbazı bağımlılıkları yüklemeye çalıştı
Tobias Kienzler

Benim de böyle hatalar var. Tüm pip3 paketlerini yükselttim ve pacman çatışmalardan dolayı sistem yükseltmeyi reddetti. Bu paketi hem pip3 hem de pacman aracılığıyla kaldırmak zorunda kaldım, sonra sistem yükseltmesini yaptım ve sonunda paketi geri yükle (elbette pacman kullanarak).
Al.G.

8

ArchLinux için doğru yol

PYTHON paketlerini ArchLinux'a kurmanın doğru yolu PACMAN! Paketleri Python3'e yüklemek için kullanmanız gerekir.

sudo pacman -S python-'package'

Python2'den paket yüklemek istiyorsanız, kullanmanız gerekir.

sudo pacman -S python2-'package'

Python paketlerinin çoğu ArchLinux depolarında ve AUR'da olmayan paketlerde (ArchLinux Kullanıcı Depoları) bulunmaktadır - bu paketler için PKGBUILD dosyasını indirip derlemelisiniz. Bundan sonra, kurulumu tamamlamak için PACMAN kullanmanız gerekir.

makepkg -s
sudo pacman -U 'compiled-package'

ArchLinux için ikinci doğru yol

Paket AUR’da değilse veya PKGBUILD çalışmıyorsa, Python3’e yüklemek için PIP’i kullanabilirsiniz.

sudo pip install 'python-package'

veya Python2

sudo pip2 install 'python-package'

virtualenvHatta bir şans verebilirconda

Arch üzerinde VirtualEnvironments'ı da kullanabilirsiniz. Bu, kodunuza taşınabilirlik getirebilir ve eski paketleri de koruyabilir. Yükleyin

sudo pacman -S python-virtualenv

ve bunu dene

virtualenv -p /usr/bin/python3 yourenv
source yourenv/bin/activate
pip install package-name

Bu ortamı oluşturduğunuzda , tüm sisteme değil, paketleri yalnızca bu ortama yüklemek üzere yourenvkurulum yapacaksınız pip.

Bu diğer bağlantılar, Linux'taki paketleri yönetme hakkında condaveya ile daha fazla bilgi edinmek istediğinizde yararlı olabilir virtualenv:

Python Paketlerini Jupyter Not Defterinden Kurma

ArchLinux'ta Kod Python

Bu kuralları uygularsanız, ArchLinux'unuz kırılmaz ve PACMAN ile PIP arasında bağımlılık problemleri olmaz.

Umarım faydalıdır!



1

Buradaki diğer cevaplara ek olarak, python-virtualenvpaketi inceleyin. Uyumsuz sürüm numaraları ile farklı bağımlılıklara sahip birkaç proje üzerinde geliştirme yapıyorsanız çok yararlı olabilir.

https://wiki.archlinux.org/index.php/Python_VirtualEnv

Ayrıca iki farklı pip ve virtualenv çeşidi bulunduğuna dikkat edin. Biri Python 2'ye diğeri Python 3'e. Bir kurulum sözdizimi hatası ile başarısız olursa, yanlış sürüm ile çalışıyor olabilirsiniz.

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.