Bir python programını çalıştırılabilir yapmak için linux üzerinde ne kullanırım?


91

Bir linux sistemi (Kubuntu) kurdum ve python programlarını linux için çalıştırılabilir hale getirecek bir program olup olmadığını merak ediyordum.




2
Hayır, orada cevaplanmadı. Bu soru, dağıtım sorunlarıyla ilgili sorgulardır.
tzot

Hayır, bu bir kukla değil. Bu soru, kitaplık kullanılabilirliği ve uyumluluk sorunlarından kaçınarak python yazılımının dağıtılmasıyla ilgilidir.
tzot

Yanıtlar:


163

Bunu senaryonuzun ilk satırına koyun:

#!/usr/bin/env python

Dosyayı şununla çalıştırılabilir yapın:

chmod +x myfile.py

İle yürütmek

./myfile.py

8
Kafam karıştı. Hash'in yorumlu bir satır yapması gerektiğinde "#! / Usr / bin / env python" nasıl çalışır? Komut dosyasını hash satırı olmadan çalıştırmayı denedim ama işe yaramadı. Yani açıkçası satır gerekli, ama bir yorumsa nasıl çalışıyor?
Nav

5
Komut dosyalarını başka bir programcıya gönderiyorsanız, bu sorun değil. Ancak bu, Python programlarını son kullanıcılara dağıtmanın uygun bir yolu değildir. Ya kullanıcının Python kurulu değilse? Ya yaparlarsa, ama bu programı yazdığınızdan farklı bir sürümse? Genel olarak bu, özellikle Windows'ta, yalnızca küçük bir kullanıcı yüzdesi için çalışacaktır.
Jonathan Hartley

5
@MathManiac Eğer ima ettiğiniz şekilde devam ederseniz, kullanıcıların yaklaşık% 15'i uygulamanızı çalıştıramayacak. Bu, fevkalade düşmanca bir kullanıcı deneyiminin yanı sıra, nefret dolu "uygulama X berbat" gönderilerinden oluşan bir torrent oluşturacak, sakatlayıcı bir destek yükü olacak. Bunun uygulamaları son kullanıcılara dağıtmak için uygun bir yol olmadığı iddiamın arkasında duruyorum.
Jonathan Hartley

3
@PrahladYeri # / usr / bin / env python3 kullanın
kingledion

4
@Nav Bu bir deniyor shebang . Yorumlanmıştır çünkü python tarafından yorumlanmamalıdır. İşletim sistemine bilgi verir. Daha spesifik olarak, betiği çalıştırmak için hangi programın kullanılması gerektiğini söyler.
MannyC

16

Python'da bağımsız bir ikili uygulama edinmek istiyorsanız py2exe veya PyInstaller gibi bir araç kullanmayı deneyin .


anahtar kelime: bağımsız
D Adams

PyInstaller'ın çıktısını yeniden derleyebilir miyim?
SuB

15

PyInstaller'ı kullanabilirsiniz. Tek bir "ikili" dosya olarak çalıştırabilmeniz için bir yapı dağıtımı oluşturur.

http://pythonhosted.org/PyInstaller/#using-pyinstaller

Python 3, ayrıca bir derleme dağıtımı oluşturma yerel seçeneğine sahiptir:

https://docs.python.org/3/distutils/builtdist.html


soru python betikleri exe / elf dosyaları yapmakla ilgili değil
warvariuc

8
Üzgünüm ama görünüşe göre soru sadece bu! "python programlarını linux için çalıştırılabilir hale getirecek bir program olup olmadığını merak ediyordum."
Leo Pepe

Çok teşekkürler @LeoPepe, sadece pyinstaller yardımıyla yapılan çalıştırılabilir bir betiğe tıklayarak bir dosyadan girdi (mevcut öğrencilerin isimleri) alıp bir çıktı dosyasında yoklama veren sınıfım için bir katılım alıcı yaptım.
Genius

5

Bu satırları kodun başlangıcına koymak, işletim sistemlerinize python betiğinin yürütülmesi için gerekli olan ikili programı aramasını söyleyecektir, yani bu python yorumlayıcısıdır.

Dolayısıyla, python yorumlayıcısını nerede tuttuğu işletim sisteminize bağlıdır. İşletim sistemi olarak Ubuntu'ya sahip olduğum için, python yorumlayıcısını içeride tutuyor, /usr/bin/pythonbu yüzden bu satırı python betiğimin başında yazmam gerekiyor;

#!/usr/bin/python

Kodunuzu tamamlayıp kaydettikten sonra

  1. Komut terminalinizi başlatın

  2. Komut dosyasının mevcut çalışma dizininizde bulunduğundan emin olun

  3. Tür chmod +x script_name.py

  4. Şimdi betiğe tıklayarak komut dosyasını başlatabilirsiniz. Bir uyarı kutusu görünecektir; uyarı kutusunda "Çalıştır" veya "Terminalde Çalıştır" a basın; veya terminal komut isteminde yazın./script_name.py


4

Biri çalıştırılabilir yapmak isterse hello.py

önce python'un işletim sisteminizde bulunduğu yolu bulun: which python

genellikle "/ usr / bin / python" klasörünün altında bulunur.

ilk satırına şunu hello.pyeklemelisiniz:#!/usr/bin/python

sonra linux komutu ile chmod

biri onu şu şekilde çalıştırılabilir hale getirmelidir: chmod +x hello.py

ve ile yürütmek ./hello.py


1

Ben aşağıdakileri yapıyorum:

  1. koymak #! / usr / bin / env python3 komut dosyasının en üstünde
  2. chmod u + x file.py
  3. Dosya adında .py'yi .command olarak değiştirin

Bu, esasen dosyayı bir bash yürütülebilir dosyasına dönüştürür. Çift tıkladığınızda çalışmalıdır. Bu, Unix tabanlı sistemlerde çalışır.


0

Bunu yapmanın başka bir yolu da bir takma ad oluşturmak olabilir. Örneğin terminal yazımında:

alias printhello='python /home/hello_world.py'

Yazma printhello, hello_world.py çalıştırır, ancak bu yalnızca geçicidir. Takma adları kalıcı hale getirmek için, bunları bashrc'ye eklemelisiniz, bunu terminalde yazarak düzenleyebilirsiniz:

gedit ~/.bashrc
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.