Chcę skonfigurować pojedynczy plik Pythona zawierający zmienne, które mają położenie wszystkich moich źródeł danych. Byłoby to wykorzystane przez wszystkie moje skrypty, a następnie, gdy zmienia się źródło danych, muszę edytować tylko jeden plik.
Mój plik Data_sources.py wyglądałby mniej więcej tak:
BC_BEC = "Database Connections\\BC.sde\\FOREST_BC.BC_Eco\\BC.BC_BEC"
BC_TFL = "Database Connections\\Forest_BC.sde\\BC.BC_Admin\\BC.TFL_Boundary"
i tak dalej...
Jak uzyskać wszystkie moje skrypty, aby załadować lub uzyskać dostęp do tych zmiennych w pliku Data_sources.py?
Odpowiedzi:
Możesz utworzyć zainstalowany moduł Pythona, który można importować z każdego uruchomionego skryptu Python, używając Distutils do jego spakowania.
Z dokumentu Python:
Następnie możesz go zainstalować za pośrednictwem
Następnie możesz zaimportować foo z dowolnego skryptu Python lub użyć
Aby utworzyć instalator systemu Windows dla modułu, aby można go było rozpowszechniać na innych komputerach.
źródło
setup.py develop
(zamiastinstall
), zmiany w pakiecie zostaną pobrane, gdy tylko zostaną zapisane, bez potrzeby ponownej instalacji. (Jest to prawdopodobnie odpowiednie dla pierwotnego data_sources.py pytającego.)W dowolnym skrypcie w tym samym katalogu, co Data_sources.py, wstaw
na górze. Działa to, ponieważ katalog roboczy zawsze znajduje się na początku ścieżki python, chyba że został zmodyfikowany.
Zobacz także: http://diveintopython.org/getting_to_know_python/everything_is_an_object.html#d0e4550
Jeśli chcesz udostępnić dane szerzej, możesz je spakować tak, jak sugerowali inni.
źródło
Utwórz tekstowy plik konfiguracyjny i przeczytaj go za pomocą ConfigParser Pythona .
Nieco ładniejsze przykłady niż oficjalna dokumentacja na stronie http://effbot.org/librarybook/configparser.htm
źródło