Py2exe'yi kullanarak bir Windows .exe'e derlediğim bir python programı var. Inno Setup kullanarak, bir Windows yükleyici oluşturun.Komut dosyasının çalışma klasörünü Windows'ta Python için import() yoluna eklemenin en iyi yolu?
Programımın yapısı, daha sonra __import__()
bildirimi kullanılarak içe aktarılan eklentileri kullanacak şekildedir. Bu eklentiler, programımın .exe dosyasının bulunduğu bir alt klasör olarak bulunan bir 'eklenti' klasöründe bulunur. kullanıcı Windows'un aracılığıyla programı başladığında bu çalışma değildi, ancak
sys.path+= ['.']
:
Şimdi, programın eklentileri bulmak için, daha önce dosyama üstündeki somwhere aşağıdaki ifadeyi vardı 'Başlat menüsü, çünkü çalışma klasörü başlangıç menüsüne (.exe'nin bulunduğu yerine) ayarlanmıştı. Yani'.'
istediğimi çözmedi.
__import__()
Açıklamada .exe bulunduğu klasörde görünecek biçimde
Ben, aşağıdakilere ifadeyi değiştirerek düzelttim (argv[0]
yürütülebilir tam yolu olduğu için):
sys.path+= [os.path.dirname(sys.argv[0])]
Ancak doğru çözümü seçip seçmediğimi bilmiyorum. Özellikle de programımın çapraz platform olması (Windows, OSX, Linux) ve sys.argv documentation, argv [0] hakkında 'işletim sisteminin tam bir yol adı olup olmadığına bağlı olduğunu' söylüyor.
Bunu farklı şekilde çözmeli miyim yoksa benim yaklaşımım tamam mı?
Hmm, Windows için "__file__" döndüğünden ikna olmadım.exe programı: 'C: \ Program Dosyaları (x86) \ myprogram \ myprogram.exe \ core.pyc'. Bu, OSX, Linux'ta, hatta terminalden çalışırken bile söz konusu olmayan iki yoldan ('core.pyc' ve' myprogram.exe') çıkmamı gerektiriyordu. – Rabarberski
O halde en iyi çözüm, @SpencerRathbun – Nilesh