Mam niestandardowy moduł w jednym z katalogów w mojej PYTHONPATH o tej samej nazwie, co jeden ze standardowych modułów bibliotecznych, tak aby po I import module_name
ten moduł został załadowany. Jeśli chcę użyć oryginalnego standardowego modułu bibliotecznego, czy istnieje jakiś sposób zmuszenia Pythona do importowania ze standardowej biblioteki, a nie z katalogu PYTHONPATH, bez zmiany nazwy modułu niestandardowego i zmieniania każdego odniesienia, aby wskazywało na nową nazwę?Wymuszenie modułu importu ze standardowej biblioteki Python zamiast domyślnej wartości PYTHONPATH
Odpowiedz
Idealnym rozwiązaniem byłoby, aby zmienić nazwę modułu coś nie w bibliotece standardowej.
Można również switch absolute imports on jeśli jesteś na Python 2.5+:
from __future__ import absolute_import
Jak używać względnych importów do pobrania standardowej wersji biblioteki? – jrdioko
Źle zrozumiałem twoje pytanie, zredagowaną odpowiedź. –
To naprawdę nie pomoże? –
Można wybrać moduł, który chcesz importować z modułem imp:
import imp
mymodule = imp.load_module(name, file, pathname, description)
nie uwagi.
Jeśli przez przypadek wybrano standardową nazwę modułu bibliotecznego, zmień nazwę modułu, aby zakończyć konflikt.
Jest to prawdopodobnie najlepsze rozwiązanie, ponieważ nie powoduje zamieszania wśród odwiedzających programistów, a także fakt, że zachowanie importujące moduł, który nie był względnym importem, nie zmieni się po włączeniu importu bezwzględnego. –
Najlepszym sposobem na to jest, aby umieścić swój projekt w jednym katalogu powiedzmy "myproject" że przebywa on:
/home/me/myproject
Zrób link symboliczny do myproject katalogu do jednego z ścieżki domyślne python, na przykład:
# ln -s /home/me/myproject /usr/local/lib/python2.7/dist-packages/myproject
teraz, kiedy chcesz aby zaimportować moduł w ramach projektu, po prostu otwórz interpreterów języka Python.
>>> from myproject.mymodule import *
To będzie działać jak czar.
Jeszcze jedna rzecz, nie nazwij swojego projektu takim, jaki znajduje się na ścieżce pythona, więc nie będziesz mieć problemów podczas importowania.
Lepszym sposobem byłoby użycie 'PYTHONPATH'. Nie używaj także 'from x import *', ponieważ powoduje ono pomylenie narzędzi do analizy statycznej i utrudnia zrozumienie skąd pochodzi zmienna. – bfontaine
- 1. Jak korzystać ze standardowej biblioteki w IronPython?
- 2. poprawa szybkości importu modułu Python
- 3. python - zwracanie wartości domyślnej
- 4. Jak importować biblioteki standardowej zamiast samej nazwie modułu w ścieżce modułu
- 5. Zasięg pythonowego random.random() ze standardowej biblioteki
- 6. Błąd importu: Brak modułu o nazwie django
- 7. wersje biblioteki standardowej C++
- 8. Python sys.path - dodawanie PYTHONPATH
- 9. Python - PYTHONPATH w linux
- 10. Dlaczego istnieją ciągi __version__ w niektórych modułach standardowej biblioteki Python?
- 11. Pobieranie czasu ściany w języku Python przy użyciu standardowej biblioteki?
- 12. Lista importu modułu domyślnego Spydera
- 13. Python analizator zależność biblioteki
- 14. Moduł importu modułu submoduł
- 15. Dodawanie atrybutu do słownika Pythona ze standardowej biblioteki
- 16. Jak wyświetlić wartości domyślne jako puste zamiast domyślnej wartości?
- 17. Wewnętrzna praca biblioteki standardowej C
- 18. PYTHONPATH ignorowane
- 19. (Python) Użyj biblioteki lokalnie zamiast instalowania go
- 20. ustawienie domyślnej wartości ciąg Pythona collections.defaultdict
- 21. Wyjaśnienie dotyczące importu Python
- 22. PHP: Jak wywołać funkcje biblioteki standardowej
- 23. Instrukcja obsługi standardowej biblioteki C++ 0x
- 24. MacPorts Clang 3.1 brak instalacji standardowej biblioteki?
- 25. Wersja do druku biblioteki standardowej Haskell
- 26. Supervisor - uruchomienie skryptu python PYTHONPATH problem
- 27. W skrypcie Python, jak ustawić PYTHONPATH?
- 28. Błąd importu Sublime Text2: Brak modułu o nazwie Gnuplot
- 29. Ustawianie domyślnej wartości funkcji?
- 30. Dodawanie wartości domyślnej SelectListItem
Co jest złego w zmianie nazwy modułu? –
Wymagałoby to tylko wprowadzania zmian w dziesiątkach plików. Wygląda jednak na to, że to najlepsze rozwiązanie. – jrdioko
Masz 'grep', więc nie powinno być zbyt trudno znaleźć każdego z nich i je naprawić. –