Nhiều bài đăng về các khía cạnh khác nhau của câu hỏi này nhưng tôi chưa thấy bài đăng nào kết hợp tất cả.Thực tiễn tốt nhất để triển khai Python - nhiều phiên bản, vị trí cài đặt chuẩn, công cụ đóng gói, v.v.
Đầu tiên một tuyên bố chủ quan: có vẻ như sự đơn giản mà chúng tôi gặp phải khi làm việc với ngôn ngữ Python được cắt thành từng mảnh khi chúng tôi di chuyển ra ngoài trình thông dịch và bắt đầu vật lộn với các vấn đề triển khai. Cách tốt nhất để có nhiều phiên bản Python trên cùng một máy? Các gói phải được cài đặt ở đâu? Disutils vs setuptools so với pip vv Có vẻ như Zen của Python đang bị lạm dụng khá tệ khi nói đến triển khai. Tôi đang cảm nhận được những âm thanh kỳ lạ của trải nghiệm "DLL hell" trên Windows.
Các chuyên gia có đồng ý về một số mức độ thực hành tốt nhất về những câu hỏi này không?
Bạn có chạy nhiều phiên bản Python trên cùng một máy không? Làm thế nào để bạn vẫn tự tin rằng họ có thể cùng tồn tại - và phiên bản mới hơn không phá vỡ các giả định của các quá trình khác dựa trên phiên bản trước đó (các kịch bản được cung cấp bởi nhà cung cấp hệ điều hành) chẳng hạn? Điều này có an toàn không? Virtualenv có đủ không?
Lựa chọn tốt nhất cho các vị trí cho các thành phần khác nhau của môi trường Python (bao gồm gói bên thứ 3) trên hệ thống tệp cục bộ là gì? Có sự tương ứng chặt chẽ hoặc thô lỗ giữa các vị trí cho nhiều phiên bản khác nhau của Unixy và Windows OS có thể dựa vào không?
Và góc tối nhất của đầm lầy - bạn sử dụng công cụ cài đặt nào (setuptools, distutils, pip etc.) và chúng hoạt động tốt với các lựa chọn của bạn: vị trí tệp, môi trường ảo Python, đường dẫn Python, v.v.
Những âm thanh này giống như các câu hỏi khó. Tôi hy vọng các Pythonistas có kinh nghiệm có thể đã định nghĩa một cách tiếp cận kinh điển (hoặc hai) cho những thách thức này. Bất kỳ cách tiếp cận nào "treo với nhau" như một hệ thống có thể được sử dụng với sự tự tin (cảm thấy ít giống như các công cụ riêng biệt, không liên quan) sẽ rất hữu ích.
Tôi nghĩ câu hỏi này là định nghĩa quá rộng. – agf
Kể từ khi đặt câu hỏi này, tôi đã trở thành một fan hâm mộ của 'virtualenvwrapper' - nó đơn giản hoá nhiều vấn đề tôi đã hỏi. Vẫn còn những vấn đề kỳ lạ với mỗi công cụ phân phối biến thể, nhưng có môi trường Python có tường chắn có thể được chuyển vào và ra khỏi một cách nhanh chóng giúp ích rất nhiều. –