Python geçerli komut dizini belirlemek için en iyi yolu nedir görmek istiyorum?
Python kodunu çağırmanın birçok yolu nedeniyle, iyi bir çözüm bulmak zor olduğunu keşfettim.
İşte bazı sorunlar:
__file__komut dosyası yürütülürse tanımlanmazexec,execfile__module__yalnızca modüllerde tanımlanır
Kullanım örnekleri:
./myfile.pypython myfile.py./somedir/myfile.pypython somedir/myfile.pyexecfile('myfile.py')(başka bir dizinde bulunup başka bir dizinde bulunabilir ve başka bir geçerli dizine sahip olabilir.
Mükemmel bir çözüm olmadığını biliyorum, ancak vakaların çoğunu çözen en iyi yaklaşımı arıyorum.
En çok kullanılan yaklaşım, os.path.dirname(os.path.abspath(__file__))ancak betiği başka bir komuttan çalıştırırsanız gerçekten işe yaramaz exec().
Uyarı
Geçerli dizini kullanan herhangi bir çözüm başarısız olur, bu komut dosyasının çağrılma biçimine göre farklı olabilir veya çalışan komut dosyasının içinde değiştirilebilir.
pathlibPython 3.4 veya daha yenisini kullanıyorsanız Ron Kalian'ın çözümüne bakın : stackoverflow.com/a/48931294/1011724
python myfile.pykabuktan yaparken , işe yarıyor, ancak vim içinden :!python %ve :!python myfile.pyiçinden başarısız oluyor Sistem belirtilen yolu bulamıyor. Bu oldukça can sıkıcı. Bunun arkasındaki neden ve olası geçici çözümler hakkında yorum yapan var mı?