Pertanyaan Haruskah saya mengubah kode Python saya jika saya memutakhirkan Ubuntu saya?


Saya memiliki perangkat lunak yang telah saya kembangkan dengan Python 3 selama bertahun-tahun. Sampai hari ini, saya telah menggunakan Ubuntu Desktop 11.04 tetapi sekarang saya ingin pindah ke versi Ubuntu yang lebih tinggi.

Haruskah saya tetap menggunakan Ubuntu 11.04 sehingga saya tidak perlu mengubah bagian dari kode sumber perangkat lunak saya karena perubahan baru pada versi Ubuntu yang lebih tinggi?

Apakah versi Ubuntu tidak akan mempengaruhi perangkat lunak saya dengan cara apa pun?


11
2018-04-25 11:58


asal


Ini benar-benar no-brainer untuk saya: perbarui ke 14.04, jika ada yang rusak dalam perangkat lunak Anda: perbaiki. Ini adalah latihan yang sangat baik untuk menghindari pembajakan perangkat lunak. Jenis masalah yang mungkin Anda temukan adalah dengan dependensi. Anda dapat menguji ini terlebih dahulu di virtualenv. - don.joey
@begueradj Saya tidak ingin meminimalkan upaya yang akan diambil atau membatalkan alasan Anda. Itu hanya: apakah Anda menempatkan usaha atau perangkat lunak Anda benar-benar tidak akan bertahan lama lagi. Anda dapat meningkatkan ke 12.04, tetapi tetap pada versi EOL bermasalah. Dan masalahnya tidak akan hilang dengan sendirinya ... - don.joey
@begueradj - silakan edit pertanyaan Anda dan berikan beberapa detail tentang perangkat lunak Anda. Jelaskan apa yang dilakukannya. Jelaskan apa toolkit yang Anda gunakan (mis. GTK? QT?). Jelaskan perangkat lunak pihak ketiga yang menjadi sandarannya (mis. Versi firefox tertentu? Webkit?). Jelaskan ketergantungan perangkat lunak untuk membangun perangkat lunak Anda. Tanpa informasi di atas, Anda tidak akan mendapatkan jawaban spesifik untuk pertanyaan Anda. Anda hanya akan mendapatkan jawaban umum seperti yang Anda miliki saat ini. - fossfreedom♦
11.04 mencapai akhir dari kehidupan satu setengah tahun yang lalu .. Anda seharusnya telah meningkatkannya sejak lama. - psusi


Jawaban:


Berdasarkan komentar Anda, Anda berhasil menguji perangkat lunak Anda di VM yang merupakan kabar baik.

Tetapi sebagai pengembang aplikasi Anda harus siap untuk menyesuaikan kode Anda dengan rilis yang lebih baru jika tidak akan cepat ditinggalkan.

Sekarang untuk memastikan bahwa itu akan terus bekerja dengan rilis baru Ubuntu Saya sangat menyarankan Anda untuk mempertahankannya sebagai paket dan menyediakan rangkaian uji lengkap untuk aplikasi Anda dan memanggilnya selama proses pembuatan paket (misalnya dengan menelepon setup.py test di dalam kamu debian/rules  override_dh_auto_test bagian).

Anda dapat dengan mudah mengaturnya build harian paket Anda dalam ppa menggunakan bzr-builder resep. Dengan begitu, Anda akan diberitahu tentang semua kegagalan build yang disebabkan oleh versi perangkat lunak baru atau ketergantungan yang rusak.

Rilis baru biasanya terbuka untuk pengembangan beberapa hari setelah pengumuman rilis resmi. Lihatlah kami ppa halaman, Utopic sekarang menjadi bagian dari seri distro yang sedang kami bangun untuk:

enter image description here


3
2018-05-13 10:52



Mengapa Anda memiliki 2 jawaban untuk pertanyaan yang sama ini? Juga, autopkgtest tidak berfungsi dengan cara itu. Dan bagaimana ini benar-benar menjawab pertanyaan lebih baik atau lebih tepat daripada pertanyaan lain? - dobey
Saya memposting jawaban kedua selama periode karunia. Kali ini untuk fokus pada bagaimana mencegah masalah pembaruan berharap untuk membawa apa yang benar-benar diharapkan OP (karena per komentarnya saya tahu bahwa aplikasinya bekerja dengan baik dengan 14.04) - Sylvain Pineau
Saya merekomendasikan Anda untuk mengajukan pertanyaan lain untuk menaruh jawaban Anda di sana. BTW, saya akan memperbaiki bagian autopgktest. @dobey benar, tidak berfungsi seperti itu. - Braiam
@dobey autopkgtest diperbaiki / dihapus dari jawaban saya. - Sylvain Pineau
@Braiam autopkgtest diperbaiki / dihapus dari jawaban saya - Sylvain Pineau


Tidak, Anda tidak harus tinggal di 11.04. Ini adalah Akhir Kehidupan untuk dukungan sejak Oktober 2012. Jika Anda menginginkan dukungan apa pun, Anda perlu meningkatkan, setidaknya ke 12.04 (yang akan didukung untuk tiga lebih banyak tahun).

Juga, bahkan versi yang lebih baru dari Ubuntu termasuk Python 3.x secara default, dengan tujuan menghapus Python 2.x dari instalasi default sepenuhnya.

Kamu mungkin memiliki masalah dengan menjalankan kode Anda di bawah versi Python 3.x yang lebih baru, tetapi seharusnya secara umum tidak memiliki masalah. Anda juga harus, sebagai pengembang, bersiaplah untuk menangani masalah semacam itu, terlepas dari versi Ubuntu yang Anda gunakan. Setiap pustaka yang Anda gunakan, atau Python itu sendiri, dapat memiliki bug yang tergantung pada perilaku kode Anda, dan jika bug itu diperbaiki, dapat menyebabkan program Anda berperilaku berbeda dari yang Anda harapkan sebelumnya.


13
2018-04-25 20:23





Sulit memberikan jawaban pasti tanpa deskripsi aplikasi Anda. Karena Anda menggunakan Python3, setidaknya Anda tidak terbatas dengan cabang Python2.x (tidak akan ada Python 2.8).

Sekarang beberapa peringatan yang mungkin berlaku untuk aplikasi Anda, dengan Python3 banyak paket sekarang tidak lagi digunakan karena cara terbaik untuk mengakses GLib / GObject / GIO / GTK + adalah dengan menggunakan Introspeksi Python GObject (alias PyGI).

Akhirnya masih ada beberapa perbedaan kecil antara versi python3 yang berbeda (misalnya Argparse tidak berperilaku persis sama dengan python 3.2 dan 3.3.

Satu hal yang bisa Anda coba adalah boot 14.04 VM dan uji kode Anda dengan python3.4.


11
2018-04-25 12:15



Saya tidak akan mengubah versi Python saya (tidak mungkin), saya lebih peduli tentang bagaimana sebuah versi Ubuntu baru dapat mempengaruhi kode sumber perangkat lunak saya.
Versi apa yang secara resmi Anda dukung, 3,2? - Sylvain Pineau
Saya menggunakan versi 3.1.3
Saya mendorong Anda untuk menguji aplikasi Anda dengan python3.2 (boot 12.04 VM dan sudo apt-get install python3). Anda juga dapat memeriksa catatan rilis python3.2 tetapi sejauh yang saya tahu python3.2 hanya ton perbaikan atas cabang 3.1.x (argparse adalah salah satu dari mereka) - Sylvain Pineau
Untuk program python3, versi python yang ditingkatkan hanya menyediakan cara yang lebih efisien untuk melakukan tugas-tugas kompleks. Python3.4 misalnya, memperkenalkan asyncio dan itu akan memungkinkan saya untuk menyingkirkan masalah mainloop / threading yang sangat kompleks. Saya menaruh catatan tentang argparse karena saya terjebak dalam perubahan baru-baru ini tetapi itu bukan masalah besar. Jadi, sekali lagi uji sw Anda dengan versi terbaru (3,2 kemudian 3,4 dengan 14,04) tetapi seperti jawaban orang lain katakan Anda seharusnya tidak mengalami masalah besar - Sylvain Pineau


Ini tergantung pada kode Anda, Jika kode Anda menggunakan pustaka yang tidak didukung, Anda tidak dapat bermigrasi ke versi yang lebih baru dari sistem operasi dengan mudah, tetapi sebagian besar waktu tidak akan terjadi masalah.


2
2018-04-25 12:16



dapatkah Anda menjelaskan kepada saya bagaimana perpustakaan Python bergantung pada versi Ubuntu yang diberikan?
@begueradj Tidak, tetapi jika Anda menggunakan pustaka Python yang tidak lagi dikelola, itu bisa saja dihapus dari arsip Ubuntu di beberapa titik, dan dengan demikian tidak tersedia pada versi yang lebih baru. Kode Anda akan gagal. Anda tentu saja dapat menginstal paket pustaka dari versi lama Ubuntu, atau dari sumber, untuk menyelesaikan masalah, meskipun Anda tidak akan mendapatkan pembaruan untuk itu; atau Anda dapat memperbaiki kode Anda untuk menggunakan pustaka yang berbeda atau menulis kode Anda sendiri untuk melakukan fungsi yang sama. - dobey
seperti yang dikatakan @dobey, beberapa pustaka tidak dipertahankan lagi atau versi yang lebih baru membobol kompatibilitas ke belakang. Di masa lalu, saya memiliki beberapa masalah dengan Turbogears ketika saya meng-upgrade ke versi Ubuntu yang lebih baru. - Ocean


Ubuntu 14.04 memiliki paket python3, jadi itu bukan masalah. apt-cache search python3 akan menunjukkannya kepada Anda. Di luar itu, Anda harus membaca catatan rilis untuk setiap rilis Ubuntu antara 11.04 dan "versi lebih tinggi", dan mencari perubahan yang akan merusak aplikasi Anda. Tidak mengetahui apa pun tentang perkembangan Anda mengharuskan saya untuk berteriak YMMV, tetapi dugaan saya adalah bahwa Anda tidak akan memiliki masalah yang tidak dapat diatasi.


0
2018-04-25 12:13





Jika Anda perlu menjalankan versi lama Python pada Ubuntu 14.04 maka aktifkan deadsnakes gudang. Ini memiliki versi Python 2.3, 2.4, 2.5, 2.6, 3.1, 3.2, 3.3 untuk Ubuntu 14.04. Jika aplikasi Anda adalah kode Python murni, dan tidak tergantung pada perilaku proses lain, maka itu akan berjalan dengan baik di bawah juru bahasa lama.


0
2018-05-11 17:08





Sebagai jawaban lain, Anda bisa menggunakannya lingkungan virtual jika Anda memiliki masalah atau Anda dapat menggunakan versi python yang sama pada 11.04 (unduh dan bangunlah) di 14.04.


0
2018-04-26 14:34



Tentunya saya dapat menguji pada VM (saya melakukannya), perangkat lunak saya bekerja dengan baik ... untuk saat ini ... tapi saya tidak tahu apakah nanti akan bug karena versi Ubuntu yang baru.
Karena Ubuntu 14.04 adalah versi LTS dan berdasarkan filosofi mereka, mereka tidak akan mengubah versi (bom pada versi utama) dan konfigurasi, saya pikir Anda tidak akan memiliki masalah. - Ocean