Mam projekt z taką strukturą:

Project/
    Project/
        __init__.py
        config.py
    setup.py
    .gitignore

config.py zawiera dwie zmienne (LOGIN, PASS) i jest dodawany do .gitignore.

Chciałbym dodać niestandardową akcję do setup.py następnie uruchom python setup.py install niż wyzwalane tworzenie config.py z niektórymi inputs("Please write your login/pass") przed instalacją pakietu.

Jak to zrobić dobrze?

1
tibhar940 20 październik 2020, 20:10

1 odpowiedź

Najlepsza odpowiedź

Nie jest dobrym pomysłem, aby wykonać dowolną dostosowanie na Czas instalacji . Dobrą praktyką jest dostosowanie w czasie Run Time , zwykle na początku pierwszego biegu.

Na początku programu należy sprawdzić, czy login i pass są w jakiś sposób dostępne. Jeśli login i pass nie są dostępne, a następnie poproś użytkownika o wprowadzenie ich i zapisać wartości w pliku. Zwykle takie pliki powinny zostać zapisane w katalogu konfiguracji użytkownika . Zazwyczaj używać Appdirs biblioteka, aby uzyskać odpowiednią lokalizację dla takich plik.

Coś w tym stylu:

import pathlib

import appdirs

user_config_dir = appdirs.user_config_dir('MyApp', 'tibhar940')
user_config_path = pathlib.Path(user_config_dir, 'config.cfg')

if user_config_path.is_file():
    # read
else:
    # prompt the user and save in file

związane :

0
sinoroc 21 październik 2020, 08:47