Sistem saya adalah RedHat 5 Linux dan memiliki standar python 2.4 diinstal. Untuk mengeksekusi Lincah 1,81, saya mencoba memutakhirkan python dari 2.4 untuk 2.6 dan saya pikir saya menyimpannya di direktori yang berbeda. Saya telah memasang tautan keras python 2.6 untuk ular sanca . Sekarang, saya menghapusnya dan berharap membuat python menunjuk kembali ke python 2.4 untuk menghindari konflik versi.
Ini adalah perintah yang saya gunakan untuk menghapus tautan keras di antaranya ular sanca dan python 2.6 :
find -xdev -samefile /usr/bin/python | xargs rm
maka saya menggunakan perintah sebagai:
ln -s /usr/bin/python2.4 /usr/bin/python
ln -s /usr/bin/python2.6 /usr/local/bin/python
export PATH=/usr/local/bin:$PATH
Change first line of hg to #!/usr/bin/env python
PYTHONHOME=/usr/lib/python2.6
PYTHONPATH=/usr/lib/python2.6
Lalu ketika saya mengetik "whereis python", berikut hasilnya.
python: /usr/bin/python2.4
/usr/bin/python
/usr/lib/python2.4
/usr/lib/python2.6
/usr/local/bin/python
/usr/include/python2.4
/usr/include/python2.6
/usr/share/man/man1/python.1.gz
Lalu saat saya mengetik which python
, itu menunjuk usr/bin/python
. Saat saya mengetik python -V
, itu menunjukkan python 2.4.3
. Tampaknya menunjuk kembali ke 2.4.3 . Lalu, saat saya menggunakan perintah
python -c "import sys; print '\n' .join(sys.path)"
itu menunjukkan
/usr/lib64/python24.zip
/usr/lib64/python2.4
/usr/lib64/python2.4/plat-linux2
/usr/lib64/python2.4/lib-tk
/usr/lib64/python2.4/lib-dynload
/usr/lib64/python2.4/site-packages
/usr/lib64/python2.4/site-packages/Numeric
/usr/lib64/python2.4/site-packages/gtk-2.0
/usr/lib/python2.4/site-packages
Saya mencoba mencari jalan setapak python 2.6 dengan mengetik find / -name python2.6
, itu menunjukkan
/usr/include/python2.6
/usr/lib/python2.6
/usr/lib64/python2.6
Ini pertanyaan saya:
- Bagaimana saya bisa mengganti ganti hasil dari on-liner di atas ke python 2.6 ?
- Mengapa saya tidak dapat menemukan direktori seperti
/usr/bin/python2.6
atau/usr/local/bin/python2.6
? Apakah ini berarti saya menginstal python 2.6 direktori salah atau tidak sengaja dihapus? Apakah ada yang salah dengan hasil yang saya dapatkan dari perintah yang saya masukkan? - Tahu bagaimana membuat sistem dieksekusi python 2.6 ketika saya menggunakan "hg push"?
- Haruskah saya menginstal python 2.6 lagi di / usr / local / bin?
hg push --insecure
untuk memberi tahu Mercurial bahwa Anda tidak dapat memverifikasi sertifikat dengan Python Anda. Saya pikir Anda juga dapat mengkonfigurasi sidik jari host, lihat halaman wiki .Jawaban:
source /usr/local/bin/virtualenvwrapper.sh
ke skrip startup shell Anda dan kemudian sumber skrip startup untuk menggunakan pembungkus)mkvirtualenv -p /usr/lib/python2.6 ENVNAME
(dimanaENVNAME
adalah apa pun yang Anda ingin beri nama, mungkinhg
?)workon ENVNAME
ke skrip init shell Anda (.profile,. * shrc, dll)Sekarang sistem Anda masih dapat menggunakan 2.4, dan semua shell Anda akan menggunakan 2.6. Hati-hati, karena ini dapat memutuskan panggilan ke aplikasi yang diinstal sistem lainnya, jika ketergantungannya tidak di lingkungan virtual Anda. Tapi, karena Anda sekarang memiliki pip, itu seharusnya mudah
pip install $WHATEVER_IS_MISSING
(atau jalankandeactivate
perintah untuk keluar dari lingkungan virtual Anda, lakukan hal Anda, danworkon
kembali ke tempat Anda sebelumnya).Jika Anda menemukan instance hg dimulai oleh proses di luar shell (mis. Integrasi manajer file?) Maka saya sarankan menempatkan skrip kecil ini di jalur Anda dan mengonfigurasi proses tersebut untuk menjalankannya.
(Catatan, Anda dapat menonaktifkan
(ENVNAME)
prompt dengan pengaturanVIRTUAL_ENV_DISABLE_PROMPT
lebih awal dalam skrip init Anda daripadaworkon
baris)sumber