Bergantung pada sistem, python
== python2
atau python
== python3
.
Skrip Python yang dapat dieksekusi, dimulai dengan:
#!/usr/bin/env python
#!/usr/bin/env python2
#!/usr/bin/env python3...
Untuk python py3k disediakan dalam dokumentasi saya harus / dapat menggunakannya dengan nomor versi , jadi saya melakukan ini:
#!/usr/bin/env python3
Tapi saya telah menemukan masalah dengan skrip py2k.
Sementara di dokumentasi py2k ada tertulis penggunaan: #! /usr/bin/env python
,
pada beberapa * nix-es python py3k adalah default, jadi python == python3. (Misalnya paket python ArchLinux , di sini file paket python ).
Bagaimana cara mengemas (mengkonfigurasi, membuat) dan / atau menyiapkan skrip python untuk distribusi untuk mengatasinya?
Saya bertanya tentang membuat paket perangkat lunak yang dapat dijalankan dengan mudah oleh pengguna (tanpa mengubah lingkungan mereka)
Dapatkah saya melakukan trik yang sama untuk script python py2k sebagai untuk script python py3k dan mengaturnya sebagai: #!/usr/bin/env python2
? Bisakah saya memastikan bahwa setiap distribusi python py2k berisi python2
file, jadi #!/usr/bin/env python2
akan berfungsi?
Jika ya, mengapa tidak diusulkan sebagai standar, misalnya dalam dokumentasi python py2k ?
python2
. Saya bertanya-tanya mengapa itu tidak standar untuk menggunakannya ketika ada py2k dan py3k dan default python
dapat berbeda. Bagaimana dengan saran Anda tentang menghapus - ini tidak sesuai dengan contoh ini, karena saya bertanya tentang pengemasan. Saya ingin membuat paket yang dapat berjalan di berbagai konfigurasi / sistem. Tidak ada cara untuk memodifikasi lingkungan. Bagaimana dengan pengecekan - itu tidak berlaku untuk Shebang - sejauh yang saya tahu.
#!...python2
dalam program Anda dan jika Anda menggunakan Python 3.x, maka gunakan #!...python3
. Jangan mengandalkan sistem operasi untuk memiliki tautan yang tepat jika Anda tahu itu hanya akan bekerja pada rilis tertentu. Saya bekerja dengan sistem yang masih memiliki Python 1.5.2 diinstal sebagai /usr/bin/python
- Saya baik menulis kode untuk menangani rilis Python yang lebih lama atau menggunakan python2
.
python2
file executable di sistem saya (Debian squeeze). python
adalah symlink ke python2.6
, dan python3
adalah symlink ke python3.1
, tetapi tidak ada python2
.
python2
untuk menjalankannya (jika diinstal), dan selalu Anda dapat memeriksa versi denganpython -V
. jika Anda ingin itupython
menjadi 2 atau 3, Anda harusrm /usr/bin/python
dan kemudian membuat symlink yang menunjuk dari versi python desierd Anda misalnyaln -s /usr/bin/python2.5 /usr/bin/python
.