W zależności od systemu python
== python2
lub python
== python3
.
Wykonalne skrypty Pythona, zaczynają się od:
#!/usr/bin/env python
#!/usr/bin/env python2
#!/usr/bin/env python3...
W przypadku python py3k jest to zawarte w dokumentacji, której powinienem / mogę używać z numerem wersji , więc robię to:
#!/usr/bin/env python3
Ale znalazłem problem ze skryptami py2k.
Podczas gdy w py2k dokumentacji jest napisane do użytku: #! /usr/bin/env python
,
na niektórych * nix-es python py3k jest domyślny, więc python == python3. (Na przykład pakiet Python ArchLinux , tutaj pliki pakietu Python ).
Jak spakować (skonfigurować, wykonać) i / lub przygotować skrypty Pythona do dystrybucji, aby sobie z tym poradzić?
Pytam o tworzenie pakietów oprogramowania, które mogą być łatwo uruchamiane przez użytkowników (bez modyfikowania środowiska)
Mogę zrobić tę samą sztuczkę dla skryptów Pythona py2k jako skrypty python py3k i ustawić go jako: #!/usr/bin/env python2
? Czy mogę mieć pewność, że każda dystrybucja py2k w Pythonie zawiera python2
plik, więc #!/usr/bin/env python2
będzie działać?
Jeśli tak, dlaczego nie jest proponowany jako standard, na przykład w dokumentacji Python py2k ?
python2
. Zastanawiam się, dlaczego nie jest standardem używać go, gdy jest py2k i py3k, a domyślne python
mogą się różnić. Co z twoją radą na temat usuwania - to nie jest właściwe dla tego przykładu, ponieważ pytam o opakowanie. Chciałbym stworzyć pakiet, który może działać w różnych konfiguracjach / systemach. Nie ma mowy o modyfikacji środowiska. A co z sprawdzaniem - nie dotyczy Shebang - o ile wiem.
#!...python2
w swoich programach, a jeśli używasz Python 3.x, użyj #!...python3
. Nie polegaj na systemie operacyjnym, aby mieć odpowiedni link, jeśli wiesz, że będzie działał tylko w określonej wersji. Pracuję z systemami, które wciąż mają zainstalowany Python 1.5.2 jako /usr/bin/python
- Piszę kod do obsługi starszych wersji Pythona lub używam go python2
.
python2
pliku wykonywalnego w moim systemie (ściśnięcie Debiana). python
jest dowiązaniem symbolicznym do python2.6
i python3
jest dowiązaniem symbolicznym do python3.1
, ale nie ma python2
.
python2
do uruchomienia (jeśli jest zainstalowany) i zawsze możesz sprawdzić wersję za pomocąpython -V
. jeśli chcesz, żepython
będzie to 2 lub 3, powinieneś,rm /usr/bin/python
a następnie utworzyć dowiązanie symboliczne, które wskazuje z twojej żądanej wersji Pythona npln -s /usr/bin/python2.5 /usr/bin/python
.