hangi program gerçekten çalışıyor?


0

Python2.6'nın standart kurulumuna müdahale etmemesi için python2.7, --prefix = $ HOME üzerinde kendi derlenmiş bir sürümünü kullanıyorum (Ubuntu 10.04'te). Ssl modüllerini içe aktarırken bir miktar sorun yaşardı, sorunu takip etti, python2.7'yi yeniden derledi ve sınamak için geldi:

$ ~/bin/python2.7 -c "import ssl"

İyi görünüyorsun, çifte kontrol

$ python2.7 -c "import ssl"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/jab/lib/python2.7/ssl.py", line 60, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: No module named _ssl

Eh? Bu makineye başka python2.7 yüklemesi yok

$ which python2.7
~/bin/python2.7
$ echo $PATH
/home/jab/bin:/usr/local/bin:/usr/bin:/bin:...
$ for dir in $(echo $PATH | tr ':' ' '); do ls $dir/python2.7 2>/dev/null; done
/home/jab/bin/python2.7

Sadece ekstra emin olmak için:

$ python2.7 -c "import sys; print sys.executable"
/home/jab/bin/python2.7

$ $(which python2.7) -c "import sys; print sys.executable"
/home/jab/bin/python2.7

Bağlam zaten yeterli. Soru şudur: bu neden işe yarıyor?

$(which python2.7) -c "import ssl"

bu ne zaman olmaz?

$ python2.7 -c "import ssl"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/jab/lib/python2.7/ssl.py", line 60, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: No module named _ssl

İçe aktarma işleminin nereden geldiğini görmek için -v. Arasında bir fark var mı python2.7 -c 'import sys; print "\n".join(sys.path)' ve $(which python2.7) -c 'import sys; print "\n".join(sys.path)'? Ne eklersen -s? Ne eklersen -S?
Gabe

$ python2.7 -v aynı hatayı veriyor, $ ~ / bin / python2.7 -v, ssl'nin yerleşik bir modül olduğunu gösteriyor. -s ve -S çıktılardan farketmez
jalanb
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.