sevdiğim yolu: virtualenv kullanmayın veya birden fazla Python ortamları tutmak için
en çok kullanılan araç pyenv virtualenv olduğunu. Çevresinde virtualenvwrapper adı verilen şekerli bir sarıcı kullanmayı seviyorum.
Sonra
sudo pip install virtualenvwrapper
benim kabuk profiline aşağıdaki gibi bir satır ekleyin:
source /usr/local/bin/virtualenvwrapper.sh
Şimdi Python her sürümü için sanal bir ortam yaratabilir
Genellikle bunu kullanarak yüklemek . Tanrım, her Python projesi için bir tane yapabilirsin!
mkvirtualenv py3
mkvirtualenv py2 --python=python2
Sonra yazarak python2 geçici geçiş yapabilirsiniz: kolayca Python birden sürümleri arasında geçiş sağlayan pyenv adlı başka aracı yoktur
workon py2
. “Bu, basit, göze batmayan ve tek bir şeyi iyi yapan tek amaçlı araçların UNIX geleneğini izler. Bu proje, rbenv ve ruby-build'den ayrıldı ve Python için değiştirildi” diye ekledi. Popülerleşiyor gibi görünüyor.
Her ikisi de bu kullanım için zarif, kullanımı kolay ve mükemmel bir uyum sağlar (geçici olarak terminal penceresinde belirli bir python sürümüne geçin).
Unix yolu: Çalıştırdığınız 3. taraf uygulama bu kuralı takip ediyorsa
#!/usr/bin/env python
şunları yapabilirsiniz: gibi Python komut dosyaları için shebang yazmak için en iyi yöntemdir $PATH
set PATH'ı değiştir.Örneğin, varsayılan piton tercüman istediğiniz biri değildir herhalde:
$ env python --version
Python 3.5.1
geçici varsayılan yapmak isteyen piton yerel bir kopyasını yapın (eğer sadece bu seferlik yapmak zorunda):
$ mkdir ~/local
$ mkdir ~/local/python2
$ ln -s `which python2` ~/local/python2/python
Sonra, varsayılan python2 yapmak istediğiniz her zaman yapmak:
$ export PATH=~/local/python2/:$PATH
Şimdi varsayılan sürümü istediğiniz edilir:
$ env python --version
Python 2.7.10
pozitif karma yolu: 3. taraf uygulama shebang
bir kodlanmış yol varsa belki app yazar en iyi uygulamaları takip etmek ve shebang Python yolu kodlanmış vermedi. Örneğin, programın ilk satırının şu olduğunu düşünelim:
#!/usr/bin/python
Bu durumda, önceki hilelerin hiçbiri işe yaramaz. Şahsen ben onu kurallı formata çeviririm ve üçüncü taraf uygulamasının yazarı için bir çekme isteği gönderirim.
otoriter yol: - bu sistemde her pencere ve Avery diğer kullanıcıyı etkilediğinden - sistem genelinde varsayılan Python sürümünü değiştirmek
bu gerçekten sorunuza cevap etmese de ben uğruna o söz ediyorum tamlık Ubuntu kullanıyorsanız
Örneğin, kullanarak varsayılan piton tercüman değiştirebilirsiniz:
$ update-alternatives --config python
Diğer Linux dağıtımları muhtemelen böyle bir şey var.
Hızlı ve kirli
Shebang ne yapıyor? Kabuğun verilen tercümanı kullanarak komut dosyasını çağırmasını söyler. Sen shebang yok sayabilir ve uygulamayı arayabilirsiniz:
$ python2 `which app_name`
Veya:
#!/usr/bin/python2
Not bu olur yani: Ayrıca sadece shebang programını düzenlemek ve değiştirmek
$ python2 /path/to/app_name
Python yorumlayıcısını bu program için kalıcı olarak değiştirir, geçici değildir veya belirli bir terminalle sınırlandırılmamıştır. En kötüsü, program genel PATH durumundaysa, sistemin diğer kullanıcıları etkilenecektir. Eski davranışı geri yüklemek isterseniz, değişikliklerinizi geri almanız gerekir.
Yani, bazen sadece doğru yapmakla ilgilenmiyorsunuz, sadece işe yaramak istiyorsunuz.
'python2/yol// için some_app arg1 arg2'? – Phillip
bu uygulama bir Python komut dosyası (o # 'gibi bir şey var mı! Ilk satırında/usr/bin/env python') nedir? –
'#!/Usr/bin/env python2.7' eklemenizi ister misiniz? Ya da belki sadece terminali 'python2.7 uygulaması ARG1 gelen bir –