2013-05-15 12 views
5

Mój program python składa się z kilku plików:Gdzie powinienem umieścić moje skrypty pythonowe w Linuksie?

  • głównym pyton wykonanie skryptu
  • moduły Pythona w plikach * .py
  • plik konfiguracyjny
  • plików dziennika
  • wykonywalne skrypty innych językach.

Wszystkie te pliki powinny być dostępne tylko dla użytkownika root. Główny skrypt powinien działać podczas uruchamiania, np. przez upstart.
Gdzie powinienem umieścić wszystkie te pliki w systemie plików Linux?
Jaki jest lepszy sposób na rozpowszechnianie mojego programu?
pip, easy_install, deb, ...? Nie pracowałem z żadnym z tych narzędzi, więc chcę dla mnie coś łatwego. Minimalny obsługiwany dystrybucyjny system Linux powinien być systemem Ubuntu.

Odpowiedz

7

Na pewno, jeśli ten program ma być dostępny tylko dla root, to główny skrypt wykonawczy python musi przejść do /usr/sbin/.

Pliki konfiguracyjne powinny przejść do /etc/, a pliki dzienników do /var/log/.

Pozostałe pliki Pythona należy wdrożyć na /usr/share/pyshared/.

Pliki wykonywalne innych języków będą dostępne w postaci /usr/bin/ lub /usr/sbin/ w zależności od tego, czy powinny być dostępne dla wszystkich użytkowników, czy tylko dla użytkownika root.

+0

Dzięki, ale jak ustawić automatyczne lokalizowanie wszystkich plików w odpowiednich katalogach, gdy udostępniam archiwum tym plikom innym osobom? Ludzie, którzy otrzymają mój program, nie przenoszą plików samodzielnie. – George

+0

Domyślam się, że najlepszą opcją będzie stworzenie pakietu '.deb' dla Ubuntu. Będziesz mógł umieścić wszystkie pliki w wybranych lokalizacjach. –

0

Jeśli tylko root ma mieć dostęp do skryptów, dlaczego nie umieścić go w katalogu/root /? Po drugie, jeśli zamierzasz dystrybuować swoją aplikację, prawdopodobnie będziesz potrzebował easy_install lub czegoś podobnego, inaczej tylko tar.gz rzeczy, jeśli tylko kilka osób będzie miało do niego dostęp?

Wszystko zależy od Twojej skali .. Pyglet, wxPython i podobne mają urojoną bazę użytkowników. To samo dla BeautifulSoup, ale nadal są tar.gz i po prostu używasz setuptools, aby go deployować (co jest inną opcją) .

Powiązane problemy