yerine Python standart kitaplığından içe aktarım modülü PYTHONPATH dizinimdeki dizinlerden birinde standart kitaplık modüllerinden birinin adıyla özel bir modül var, böylece bu modül import module_name
olduğunda, bu modül yüklenir. Orijinal standart kütüphane modülünü kullanmak istersem, Python'u PYTHONPATH dizini yerine standart kütüphaneden almayı, özel modülü yeniden adlandırmayı ve her ismin yeni isme işaret etmesini sağlamayı zorlaştırmanın bir yolu var mı?PythonPATH varsayılan
cevap
ideal çözüm standart kütüphanede değil bir şey için modül adlandırmak olacaktır.
Ayrıca switch absolute imports on Eğer Python 2.5 + iseniz edebilirsiniz:
from __future__ import absolute_import
Standart kitaplık sürümünü almak için göreceli ithalatı nasıl kullanırım? – jrdioko
Sorunuzu yanlış anladım, düzenlenmiş cevap. –
Bu aslında yardımcı olmaz mı? –
Sen imp modülü ile almak istediğiniz modülü seçebilirsiniz:
import imp
mymodule = imp.load_module(name, file, pathname, description)
etmeyin.
Yanlışlıkla standart bir kitaplık modülü adı seçtiyseniz, çakışmayı sonlandırmak için modül adınızı değiştirin.
/home/me/myproject
birine myproject dizine sembolik bir bağlantı yapın:
Her ikisi de, ziyaret kodlayıcılarında karışıklığa neden olmamak için en iyi çözümdür ve göreceli olarak içe aktarılmayan bir modülü içe aktarma davranışının, mutlak ithalatla açılmadan değişmeyeceği gerçeği. –
Bunu yapmanın en iyi yolu, en "myproject" üzerinde kalacak, diyelim bir dizinde Projenizi koymaktır Örneğin varsayılan piton yolları,: Artık istediğinizde
# ln -s /home/me/myproject /usr/local/lib/python2.7/dist-packages/myproject
Projenizde bir modül almak için sadece bir python yorumlayıcısı açın.
>>> from myproject.mymodule import *
Bir cazibe gibi çalışır.
Son bir şey, projenizi python yolunda bulunanlarla aynı şekilde adlandırma, böylece içe aktarırken sorun yaşamayacaksınız.
"PYTHONPATH" kullanmak daha iyi bir yol olurdu. Ayrıca statik analiz araçlarını karıştırdığı ve bir değişkenin nereden geldiğini anlaması zorlaştığı için 'x import *' yöntemini kullanmayın. – bfontaine
- 1. intellij'de pythonpath ayarı
- 2. Windows'da Geçici PYTHONPATH
- 3. Her biri farklı bir PYTHONPATH
- 4. Django projesi için PYTHONPATH ayarının doğru yolu
- 5. Anaconda kurduktan sonra, sürekli "KeyError: 'PYTHONPATH'" almak, mesaj
- 6. varsayılan
- 7. Varsayılan?
- 8. varsayılan olarak varsayılan görünümü değiştir
- 9. Varsayılan yapıcı olmadan varsayılan değerler
- 10. Java miras: sıkı varsayılan soyut ve varsayılan varsayılan çatışma
- 11. Sistemim açık bir şekilde ayarlandıktan sonra eski PYTHONPATH cihazımı neden kullanıyor?
- 12. Bir virtualenv'i etkinleştirirken/devre dışı bırakırken PYTHONPATH cihazımı otomatik olarak değiştirebilir miyim?
- 13. Django model - varsayılan kareyi varsayılan olarak ayarlayın
- 14. varsayılan değer 1 ile varsayılan mıdır?
- 15. varsayılan boş DataTemplate yerine varsayılan 'ToString()' DataTemplate
- 16. Varsayılan "Django
- 17. Varsayılan ayarlar
- 18. Varsayılan olarak
- 19. varsayılan sayfa
- 20. Varsayılan olarak
- 21. Varsayılan Kullanıcılar klasörünü nasıl alırsınız (örn. C: \ users \ Varsayılan)
- 22. DisplayFormatAttribute.ConvertEmptyStringToNull öğesinde varsayılan olarak ayarlamak için varsayılan olarak ayarlayın
- 23. Varsayılan olarak açılır listenin varsayılan değerini dinamik olarak ayarlayın
- 24. Yeni kullanıcılara varsayılan izinler veya varsayılan bir grup verilmesi
- 25. Varsayılan değerlere sahip Javascript dizisi (Python'un varsayılan deyimiyle eşdeğeri)?
- 26. "Uygun varsayılan kurucu yok" - Varsayılan kurucu neden çağrılıyor?
- 27. Paketlenmemiş uygulama kilitlenmeleri için varsayılan varsayılan davranış nasıl değiştirilir?
- 28. ArgParse Python Modülü: Varsayılan argüman için varsayılan argüman değerini değiştir
- 29. Varsayılan olarak varsayılan değer döndürme değerini değiştir * * sonradan başlatma
- 30. Değerleri varsayılan olarak atanan bir varsayılan değer oluşturma
Modülünüzü yeniden adlandırırken ne denli kötü? –
Sadece düzinelerce dosya üzerinde değişiklik yapmayı gerektirir. Yine de en iyi çözüm gibi geliyor. – jrdioko
"grep" 'iniz var, bu yüzden her birini bulmak ve düzeltmek çok zor olmamalı. –