2010-08-03 20 views
7

Soru: Komut satırında, komut dosyasının adının önüne python yazmadan bir python komut dosyasını nasıl ararım? Bu mümkün mü?"python" yazmadan komut satırından bir python komut dosyasını çağırmak


Bilgi:

komut satırından sqlite veritabanları erişim için kullanışlı bir senaryo yazdı ama ben tür "piton SQLsap args" yazmak zorunda sevmiyorum ve yalnızca "SQLsap args yazarsınız ". Bunun mümkün olup olmadığını bilmiyorum, ama olup olmadığını bilmek güzel olurdu. Sadece bu programdan daha fazlası için.

+0

basitçe (Bu durumda) $ quickpackage çalıştırarak komut yürütme? –

+0

Eh. Bunun için temelde sadece unix kullanıyorum. Pencerelerde aynı şeyi elde etmek güzel olurdu, ama aynı zamanda dünya barışına sahip olmak da güzel olurdu. Michael Dillon, pencerelerde koşması için mümkün olan en iyi cevabı verdi. efritz'in cevabı sadece gayet iyi çalışıyor. Ben/usr/bin aswell içine koydu, şimdi sadece SQLSap yazarak herhangi bir yerden kullanabilirsiniz. oldukça hoş. – Narcolapser

cevap

25

Sen senaryonun ilk satırında bir shebang başa ekleyebilir:

#!/usr/bin/env python 

Bu içine senaryoyu beslemek için komut mevcut kabuk söyleyecektir.

+14

Ayrıca, dosyanızı yürütülebilir olarak işaretlemeyi de unutmayın. ('' POSIX OS'lerde chmod + x SQLsap ''. –

+0

ah, işte bu böyle. Bunu daha önce görmüştüm ama hiç bilmedim. Teşekkürler! – Narcolapser

+1

Ayrıca,/usr/bin/env'in kendisi bir program olduğunu belirtmek isterim. Belirli bir yürütülebilir dosyanın nerede olduğunu belirlemek için kullanılır. Python yorumlayıcınızın nerede olduğunu biliyorsanız (örneğin/usr/bin/python), aşağıdakileri okumak için shebang kelimesini kullanabilirsiniz: #!/Usr/bin/python. Bu, herhangi bir yürütülebilir komut için de geçerlidir - perl, python, bash, vb. – efritz

4

Bir shebang istersiniz. #!/path/to/python. Bunu python betiğinin ilk satırına koy. #! aslında, işletim sisteminin adı verilen program için bir komut dosyası olarak yorumlanmasını söyleyen sihirli bir sayıdır. /usr/bin/python veya /usr/bin/env python ürününü programına bağlayabilirsiniz ve sistemin yüklü Python yorumlayıcısını istediğinizi söyleyebilirsiniz.

Ayrıca, ./SQLsap args yazıp yazmadığınız sürece, komut dosyanızı yolunuza almanız gerekir.

3

bu unix sistemde olduğu varsayılırsa, böyle dosyanın üstüne bir "shebang" ekleyebilirsiniz:
#!/usr/bin/env python

Ve sonra böyle yürütülebilir bayrağını ayarlayın:
chmod +x SQLsap

2

Windows veya DOS'ta, python kodunuzu böyle bir .BAT dosyasına koyarak yaklaşabilirsiniz.

rem = ''' this line interpreted by BAT and PYTHON 
@REM BAT-ONLY code begins now inside PYTHON comment 
@echo off 
python "%~dpnx0" %* 
goto :eof 
@REM CMD-ONLY code ends 
''' 

import sys 
print sys.path 

Ne yazık ki, çıkış ilk satır mesajın kurtulmak olamaz, ama her zaman uygulamanın adının ve fark olmaz insanlar gibi bir şey olmak ' '' sonra metni değiştirebilir.

İdeal olarak, .BAT dosyasına çok sayıda Python kodu koyamazsınız, ancak bir .py dosyası alır ve ardından .__main__ yöntemini çalıştırırsınız. olabilir (

chmod +x arbitraryname 

ve PATH bir dizin içine koyun:

#!/usr/bin/env python 

dosyasını çalıştırılabilir olun:

+0

Güzel hack ama bence * resmi * çözüm Python betiklerinin uzantılarını Python yorumlayıcısı ile ilişkilendirmektir. –

0

unix, sizin senaryonun başlangıcında bir mesele satırını kullanın bir sembolik):

pencerelerinde
cd ~/bin/ 
ln -s ~/some/path/to/myscript/arbitraryname 

, .py ayarlandı * gibi dosyaları varsayılan olarak python.exe ile açık olmak. (Değilse, manuel olarak ayarlayabilirsiniz.) Böylece, * .py dosyalarını doğrudan konsolda çalıştırabilirsiniz.

Not olun: pencerelerinde

, metin yeni satır kodu "\ r \ n", ama unix içinde, bu "\ n" dir. Eğer python betiğinizde pencere formatı varsa, unix ile çalıştırıldığında "Böyle bir dosya veya dizin yok" hatası bildirilir. Bu sorunu gidermek için , tüm "\ r \ n" unix içinde "\ n" ile değiştirin.

1

Bunu yapmanın başka bir yolu python komut dosyasını paketlemek olabilir.

Yapmanız gereken tek şey, $ pip install package-name'u çalıştırmak ve sadece herhangi bir dizinden $ package-name'u çalıştırmak, python komut dosyasını çalıştırır.

Bu yöntemi, python komut dosyasını hızlı bir şekilde paylaşmanıza/yüklemenize/kullanmanıza/kaldırmanıza olanak verdiğinden öneririm.

Python komut dosyanızın yolunu girerek, harika komut dosyanız için python paketini anında oluşturabilen ve yükleyebileceğiniz basit bir betik QuickPackage yazdım.

Örnek:

$ pip install quickpackage 

Kullanımı:

Kullanımı Basitçe quickpackage çalıştırmak ve piton script yolunu girin.

Örnek:

❯ quickpackage              
Enter name: quickpackage 
Enter version: 1.1 
Enter description: Instantly create and upload python package for your script 
Enter github url: https://github.com/yask123/quick-package 
enter author: Yask Srivastava 
Enter email: [email protected] 
Path of python script file: run.py 
running register 
.... 
running upload 
Submitting dist/quickpackage-1.1.tar.gz to https://pypi.python.org/pypi 
Server response (200): OK 

Şimdi kullandığınız hangi işletim sistemini

İlgili konular