Kök erişimi olmadan python modülleri nasıl kurulur?


220

Bazı üniversite dersleri alıyorum ve 'öğretim hesabı' verdim, bu da iş yapmak için kullanabileceğim bir okul hesabı. Hesaplama açısından yoğun Numpy, matplotlib, scipy kodumu bu makinede çalıştırmak istiyorum, ancak bir sistem yöneticisi olmadığım için bu modülleri yükleyemiyorum.

Kurulumu nasıl yapabilirim?


14
Yerel olarak yüklemek için yüklediğiniz paket için --user veya --prefix'i setup.py dosyasına iletebilirsiniz. Python modülleri için uyarı kurulumuna
arunkumar

Yanıtlar:


306

Çoğu durumda en iyi çözüm, "kullanıcı sitesi" olarak adlandırılan konuma (ayrıntılar için PEP'ye bakın) güvenmektir :

pip install --user package_name

Aşağıda, orijinal cevabımdan daha "manuel" bir yol var, yukarıdaki çözüm sizin için işe yararsa bunu okumanıza gerek yoktur.


Easy_install ile şunları yapabilirsiniz:

easy_install --prefix=$HOME/local package_name

içine yüklenecek

$HOME/local/lib/pythonX.Y/site-packages

('yerel' klasör, birçok kişinin kullandığı tipik bir addır, ancak elbette yazma izniniz olan herhangi bir klasörü belirtebilirsiniz).

Manuel olarak oluşturmanız gerekecek

$HOME/local/lib/pythonX.Y/site-packages

ve PYTHONPATHortam değişkeninize ekleyin (aksi takdirde easy_install şikayet edecektir - btw, XY için doğru değeri bulmak için yukarıdaki komutu bir kez çalıştırın).

Eğer kullanmıyorsanız easy_installbir önek seçeneği için, göz çoğu betik siz belirtmeden izin yükleyin.

Pip ile şunları kullanabilirsiniz:

pip install --install-option="--prefix=$HOME/local" package_name

1
python yoksa pipve easy_installmevcutsa ne olur ?
Girardi

Kurulum gayet iyi gitti (pip yöntemi), ancak package_name dosyasını içe aktarma çalışmıyor. Bazı yapılandırmaları değiştirmem / eklemem gerekir mi? ayrıca kurulum nereye kopyalandı (klasör akıllıca)?
idoda

2
//, @AnotherDayAnotherRob, kulağa hoş bir soru gibi geliyor .
Nathan Basanese

2
Cevabı güncellemek ve --usertalimatı en üste koymak mantıklı olabilir . :)
VasiliNovikov

1
@Girardi Python'u src'den yerel bir dir / my_python / dizinine kurduysanız, öncelikle bu konuma pip'i şu şekilde yüklemek yararlı olacaktır: wget --no-check-certificate bootstrap.pypa.io/get-pip.py -O - ​​| / my_python / bin / python - o zaman pip + öneki ile diğer modülleri yükleyebilirsiniz
teng_wenxuan

51

Erişim veya yükleme izniniz yok easy_installmu?

Ardından, bir python virtualenv( https://pypi.python.org/pypi/virtualenv ) oluşturabilir ve paketi bu sanal ortamdan yükleyebilirsiniz.

Kabukta 4 komut yürütmek yeterli olacaktır (XXX için 16.1.0 gibi geçerli sürümü ekleyin):

$ curl --location --output virtualenv-X.X.X.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xvfz virtualenv-X.X.X.tar.gz
$ python pypa-virtualenv-YYYYYY/src/virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install package_name

Kaynak ve daha fazla bilgi: https://virtualenv.pypa.io/en/latest/installation/


1
Bu yanıt, pipyüklü olmayan bir sistemde benim için yararlı oldu .
Dan Stowell

Yerel python kurulumum için bir varyant denedim. curl - silent --show-error --retry 5 bootstrap.pypa.io/get-pip.py | ~ / Python-2.7.8 / python
Neerav

3
Kaynak hareket ediyor gibi görünüyor ve yukarıdakiler kutudan çıkmıyor. Benzer talimatlar https://virtualenv.pypa.io/en/latest/installation/iş yerinde olsa iyi :)
Andras Deak

13

Kök erişimi olmadan bile ana dizininize python paketleri yüklemek için easy_install komutunu çalıştırabilirsiniz. $ HOME / .local veya $ HOME / Library / Python / 2.7 / bin gibi varsayılan bir site olan ve PYTHONPATH üzerinde varsayılan olarak bulunan site.USER_BASE'i kullanarak bunu yapmanın standart bir yolu vardır.

Bunu yapmak için, ana dizininizde bir .pydistutils.cfg oluşturun:

cat > $HOME/.pydistutils.cfg <<EOF
[install]
user=1
EOF

Artık easy_install komutunu kök ayrıcalıkları olmadan çalıştırabilirsiniz:

easy_install boto

Alternatif olarak, bu ayrıca pip'i kök erişimi olmadan çalıştırmanıza izin verir:

pip install boto

Bu benim için çalışıyor.

Wesley Tanaka'nın blogundan kaynak: http://wtanaka.com/node/8095


1
Bu benim linux sunucusuna root erişimi olmadan yüklemek için çalıştı. Teşekkür ederim Ama neden işe yaradığına dair hiçbir fikrim yok. Herhangi bir beden bir ipucu verebilir mi?
ChathuraG

9

Bir dağıtım setup.pykomut dosyası kullanmanız gerekiyorsa , bir yükleme hedefini zorlamak için bazı komut satırı seçenekleri vardır. Bkz. Http://docs.python.org/install/index.html#alternate-installation . Bu sorun tekrarlanırsa, bir dağıtım dosyası dosyası kurabilirsiniz, bkz. Http://docs.python.org/install/index.html#inst-config-files .

PYTHONPATH değişkeninin ayarlanması tihos post'ta açıklanmaktadır.


1
Çok teşekkürler. Başarıyla lxmlkullanarak kütüphanepython <lxml_distrib_dir>/setup.py install --home=<dir>
Serge S.

6

Önemli soru. Kullandığım sunucu (Ubuntu 12.04) vardı easy_install3ama değil pip3. Pip'i ve ardından diğer paketleri ana klasöre bu şekilde yükledim

  1. Yöneticiden Ubuntu paketini yüklemesini istedi python3-setuptools

  2. Kurulu pip

Bunun gibi:

 easy_install3 --prefix=$HOME/.local pip
 mkdir -p $HOME/.local/lib/python3.2/site-packages
 easy_install3 --prefix=$HOME/.local pip
  1. Pip (ve yola diğer Python uygulamaları) ekle

Bunun gibi:

PATH="$HOME/.local/bin:$PATH"
echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile
  1. Python paketini yükle

bunun gibi

pip3 install --user httpie

# test httpie package
http httpbin.org

4

Ben temelde $ HOME / .juju dizini içinde gerçekten küçük bir linux dağıtım (sadece paket yöneticisi içeren) sağlayan JuJu kullanın .

Özel sisteminizin ana dizinin içindeki proot aracılığıyla erişilebilir olmasını sağlar ve bu nedenle herhangi bir paketi kök ayrıcalıkları olmadan yükleyebilirsiniz. Tüm büyük linux dağıtımları için düzgün çalışacaktır, tek sınırlama JuJu'nun önerilen minimum sürüm 2.6.32 ile linux çekirdeğinde çalışabilmesidir.

Örneğin, pip yüklemek için JuJu yüklendikten sonra aşağıdakileri yazmanız yeterlidir:

$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip


1

Virtualenv'i yerel olarak yükleyin ( talimatların kaynağı ):

Önemli: (gibi güncel salınımını yerleştirin 16.1.0 için) XXX .
Çıkarılan dosyanın adını kontrol edin ve YYYYY için ekleyin .

$ curl -L -o virtualenv.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xfz virtualenv.tar.gz
$ python pypa-virtualenv-YYYYY/src/virtualenv.py env

Eğer önce kullanmak veya yüklemek size gereken herhangi bir paket sourcesanal Python çevre env:

$ source env/bin/activate

Yeni python paketleri (numpy gibi) yüklemek için şunu kullanın:

(env)$ pip install <package>

Bu temelde tremendows talimatlarının güncellenmiş bir versiyonudur . Talimatları eski. Düzenlemem reddedildi. Bu yüzden yeni bir talimat olarak yayınladım.
Niklas
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.