Düzenleme: Ulf Rompe'un yorumuna göre, "0" yerine "1" kullanmanız önemlidir , aksi takdirde sys.path'i bozarsınız .
Uzun bir süredir python yapıyorum (bir yıldan fazla) ve insanların neden sys.path.append()
bunun yerine kullanmanızı önerdiği konusunda kafam hep karıştı sys.path.insert()
. Göstermeme izin verin.
Diyelim ki PyWorkbooks adında bir modül (bilgisayarımda kurulu olan) üzerinde çalışıyorum, ancak aynı anda PyWorkbooks'u içeren farklı bir modül (diyelim ki PyJob) üzerinde çalışıyorum. PyJob üzerinde çalışırken, PyWorkbooks'ta düzelttiğim hatalar buluyorum, bu yüzden bir geliştirme sürümünü içe aktarmak istiyorum.
Her ikisinde de çalışmanın birden fazla yolu vardır (örneğin, PyWorkbooks projemi PyJob'un içine koyabilirim), ancak bazen yine de yolla oynamam gerekecek. Ancak, PyWorkbooks'un bulunduğu klasöre basitçe a sys.path.append()
yapamam . Neden? Çünkü python önce yüklü PyWorkbook'larımı bulacak!
Bu nedenle bir sys.path.insert (1, path_to_dev_pyworkbooks) yapmanız gerekiyor
Özetle:
sys.path.append(path_to_dev_pyworkbooks)
import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one
veya:
sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0**
import PyWorkbooks # imports correct file
Bu, geçmişte benim için birkaç soruna neden oldu ve biz (bir topluluk olarak) sys.path.insert(1, path)
, sanki manuel olarak bir yol ekliyormuşsunuz gibi önermeye başlasaydık , bunun istediğiniz yolun bu olduğunu söylemenin güvenli olduğunu düşünüyorum. kullanmak!
Yoksa yanlış bir şey mi var? Bu bazen beni rahatsız eden bir soru ve açıktan istedim!
sys.path.insert(1, dev_folder)
ama hala dev modülünü bulamıyor ve sadece kurulu modülü kullanıyor. Bunu nasıl düzeltirim?