Python scriptlerini açıkça python `u çağırmadan çalıştır


39

Debian Linux kullanıyorum.

Terminaldeki tüm Python scriptlerini script.py(yerine python script.py) yazarak çalıştıracak şekilde yapılandırmanın bir yolu olup olmadığını merak ediyordum .

Yanıtlar:


58

Yapmanız gereken iki şey var:

  • Dosyanın çalıştırılabilir olduğundan emin olun: chmod +x script.py
  • Çekirdeğin hangi tercümanı kullanacağını bilmesi için bir shebang kullanın. Komut dosyasının üst satırı şunu okumalıdır:

    #!/usr/bin/python
    

    Bu, komut dosyanızın varsayılan python ile çalışacağını varsayar. Belirli bir sürüme ihtiyacınız varsa, sadece shebang içinde belirtin:

    #!/usr/bin/python2.7
    

Şimdi yazabilirsiniz:

    ./script.py

komut dosyası geçerli dizinde ise veya:

    script.py

Eğer betiğin yeri PATH'inizde olacaksa veya:

    path/to/script.py

aksi takdirde.


32
Genellikle #!/usr/bin/env python, kullanıcının /usr/local/binbetiği çalıştırmayı tercih ettiği yerel bir python yapısı (örneğin, içinde ) olması durumunda kullanmak daha iyi bir fikirdir .
sapi

3
@sapi Debian'a göre değil, en azından kendi politikalarında değil. Kendi komut dosyalarınızı yazıyorsanız, elbette ki riski kabul edebilirsiniz, açık olması daha iyidir. Yerel olanı istiyorsanız, onu shebang'da seçin.
Paul


@progo Bu doğrudur - iyileştirmeden fayda sağlayacağını düşündüğünüz bir cevap görürseniz, devam edin ve düzeltin, iyileştirmelerin her zaman memnuniyetle karşılanacağını unutmayın
Paul

Ve yapmanız gerekecek ./script.py, değilscript.py
Paul Draper

33

Linux altında hashbang'ı (aka shebang) kullanabilirsiniz. Satır ekle

#!/usr/bin/python

Eğer varsayılan python yorumlayıcısını çalıştırmak istiyorsanız.

#!/path/to/python[x.x]

belirli bir sürümü kullanmak

#!/usr/bin/env python

Ortamın sizin için python bulmasını istiyorsanız.

Komut dosyasını çalıştırılabilir hale getirmeniz de gerekir.

chmod +x script[.py] 

2

kullanın:

#!/usr/bin/env python

Bu, kullanıcının kullanmayı umduğu python'un betiği çalıştıran python olmasını sağlayacaktır. Bu, kullanıcı belirli bir ortamda belirli bir python sürümüne sahip olmak için virtualenv kullanıyorsa önemlidir.


0

Aşağıdaki gibi betiğinizin üstünde bir shebang satırı kullanın:

! / Usr / bin / python

Komut dosyasını çalıştırmak istediğiniz uygun python sürümünü güncelleyin. Örn. python 3.6 için

! /usr/bin/python3.6

varsayılan tercüman için

! / Usr / bin / python

Not: Komut dosyasının çalıştırılabilir izne sahip olduğundan emin olun.

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.