Python'da sys.path'e kalıcı olarak bir dosya yolu ekleme


103

Ben adlı bir dosya vardı example_file.pyben eklemek karar verdi, ben çeşitli diğer dosyalardan kullanmak istedi, example_file.pyiçin sys.pathdosyayı kullanmak için başka bir dosya bu dosyayı ve aktarın. Bunu yapmak için IPython'da aşağıdakileri çalıştırdım.

import sys
sys.path
sys.path.append('/path/to/the/example_file.py')
print(sys.path)

Yeni eklediğim yolu görebiliyordum ve bu dosyayı şunun gibi başka bir dizin yolundan içe aktarmaya çalıştığımda:

import example_file

gayet iyi çalıştı, ancak IPython'dan çıkıp tekrar sys.pathgirdim ve kontrol ettiğimde, eklediğim yolun mevcut olmadığını gördüm, peki Python'da sys.path'e kalıcı olarak bir yol nasıl ekleyebilirim?


3
Kodunuzu uygun bir paket haline getirin, onu kolay kurulabilir hale getirin ve hayatınızın geri kalanında mutlu olun (kurcalamak yerine). Bunun dışında: her dokümantasyon size AÇIKÇA sys.path.append()bir dosya içeren bir dizini kabul ettiğini VE BİR DOSYA İÇİN TEK YOL DEĞİLDİR.
Andreas Jung



Sistem yolunu ile karıştırmayın PYTHONPATH.
Burhan Khalid

Yanıtlar:


99

Birkaç yol var. En basitlerinden biri bir my-paths.pthdosya oluşturmaktır ( burada açıklandığı gibi ). Bu, .pthsistem site-packagesdizininize koyduğunuz uzantıya sahip bir dosyadır . Dosyanın her satırına bir dizin adı koyarsınız, böylece oraya bir satır koyabilirsiniz /path/to/the/ve o dizini yola ekler.

Sistem PATH değişkeni gibi, ancak eklenecek dizinleri içeren PYTHONPATH ortam değişkenini de kullanabilirsiniz sys.path. Belgelere bakın .

Ne yaparsanız yapın, dosyaları değil dizinlerisys.path içerdiğini unutmayın. "İçine dosya ekleyemezsiniz ". Her zaman dizinini eklersiniz ve ardından dosyayı içe aktarabilirsiniz.sys.path


1
tamam teşekkürler, iyi, dosyadan ve çalışmasından oluşan dizini ekledim, dosyayı başka bir yerden içe aktardığımda, bu sorun ipython'dan çıktığımda ve yolumu kontrol etmek için tekrar açtığımda görünmüyor Kodu her girdiğimde bunu yapmak istemiyorum, dizin yolunu kalıcı olarak sys.path'e eklemek istiyorum, bunu nasıl yapacağım
Shiva Krishna Bavandla

@Kouripm: Yorumunuz, benim önerimi veya yukarıda bağlantısı verilen yinelenen gönderideki önerileri gerçekten takip etmediğinizi gösteriyor.
BrenBarn

1
sitePaket mükemmeldi.
Zeinab Abbasimazar

8
sorunumu çözdü sys.path.append('C:\\python34\\lib\\site-packages')teşekkür ederim!
tylerlindell

Gelecek nesil için: .pthdosya, site modülü belgelerinin a path configuration file. Yol yapılandırma dosyasıyla ilgili not:no check is made that the item refers to a directory rather than a file. No item is added to sys.path more than once. Blank lines and lines beginning with # are skipped. Lines starting with import (followed by space or tab) are executed.
Minh Tran

1

Bu yol benim için çalıştı:

beğendiğiniz yolu eklemek:

export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add

denetleme: 'dışa aktar' cmd'yi çalıştırabilir ve çıktıyı kontrol edebilir veya bu cmd'yi kullanarak kontrol edebilirsiniz:

python -c "import sys; print(sys.path)"
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.