Python komut dosyasının pinghon'unu, zaten shebang (veya eğer varsa sihir numarası) olan .pyc dosyaları oluşturmasını engellemenin bir yolu var mı? ÇalışmıyorPython'u pyb dosyasından oluşturma işlemini durdurun
:
#!/usr/bin/env python -B
Python komut dosyasının pinghon'unu, zaten shebang (veya eğer varsa sihir numarası) olan .pyc dosyaları oluşturmasını engellemenin bir yolu var mı? ÇalışmıyorPython'u pyb dosyasından oluşturma işlemini durdurun
:
#!/usr/bin/env python -B
, Python programı biraz POSIX uyumlu sistemde çalışır varsayalım (/ bin/sh için) ancak ve ancak Evet, bu çalışacaktır:
( GELİŞMİŞ glglgl gelen verilere göre)
#!/bin/sh
"exec" "python" "-B" "$0" "[email protected]"
# The rest of the Python program follows below:
Yazık, hayır. Shebang şeyler, bir yürütülebilir ve bir parametre vermekle sınırlıdır.
Yani env
bir argüman yerine -B
ile python
ve iki argüman olarak geçerli dosya olarak verilen dosya ile python -B
çalıştırmayı dener.
İstenen hedefe ulaşmanın bir yolunu göremiyorum.
Komik bölüm, Python Windows Launcher'ın bu sınırlamayı bilmediği ve seçenekleri (un) doğru şekilde ilettiği bölümdür. Böylece bir kereliğine Python on Window daha iyi çalışır;) – lqc
python interperter yolunuzu env kullanmak yerine doğrudan o vuruşuna koymak mümkündür. Bu, tabii ki, env kullanmanın bazı taşınabilirlik avantajlarından mahrum kalmanız anlamına gelir. Bu sayının wikipedia Shebang page numaralı telefonunda bir tartışması var. Python'u env örneklerinden biri olarak kullanıyorlar.
env man sayfasına göre, ortam değişkenlerini ayarlamak için name=value
geçebilir. PYTHONDONTWRITEBYTECODE
ortam değişkeni, Python'un .py [co] dosyalarını (python
'a göre -B
bayrağı ile aynı) yazmamasına neden olur. Bu nedenle,
#!/usr/bin/env PYTHONDONTWRITEBYTECODE=1 python
numaralarını kullanmalısınız.
DÜZENLEME:
ben basit Python komut bu test:
#!/usr/bin/env PYTHONDONTWRITEBYTECODE=1 python
print 1
sonra
$chmod +x test.py
$./test.py
1
$ls
test.py
(ama test.pyc
değil)
Benim için komut sadece kilitleniyor ... –
Sadece 'python -B script.py' ile çalışıyor mu? Sadece basit bir senaryoyu test ettim ve bana göre iyi çalışıyor gibi görünüyordu. – asmeurer
bende. Bu işe yaramıyor. –
@VajkHermecz, hiçbir sorum kadar daha özel. –
Evet, üzgünüm ilgili daha iyi bir terim olurdu ... srry –
Yeniden açılmayı oylama çünkü yinelenen farklı etkileri vardır. – o11c