Nói chung, bạn không thể đóng gói các mô-đun Python trong một tệp duy nhất. Bởi vì làm như vậy sẽ phá hủy phương thức tìm kiếm mô-đun mà python sử dụng (tệp và thư mục). Nếu bạn không thể cài đặt mô-đun trên máy (do không có đủ quyền), bạn có thể sử dụng virtualenv hoặc lưu tệp mô-đun trong một thư mục khác và sử dụng mã sau để cho phép Python tìm kiếm mô-đun trong mô-đun đã cho:
>>> import os, sys >>> file_path = 'AdditionalModules/' >>> sys.path.append(os.path.dirname(file_path)) >>> # Now python also searches AdditionalModules folder for importing modules as we have set it on the PYTHONPATH.
Bạn cũng có thể sử dụng virtualenv để tạo một môi trường Python cục bộ cô lập. Vấn đề cơ bản đang được giải quyết là một trong các phụ thuộc và phiên bản, và các quyền gián tiếp. Hãy tưởng tượng bạn có một ứng dụng cần phiên bản 1 của LibFoo, nhưng một ứng dụng khác lại yêu cầu phiên bản 2. Làm thế nào bạn có thể sử dụng cả hai ứng dụng này? Nếu bạn cài đặt mọi thứ vào /usr/lib/python2.7/site-packages (hoặc bất kể vị trí tiêu chuẩn của nền tảng của bạn là gì), bạn sẽ dễ dàng gặp phải trường hợp vô tình nâng cấp một ứng dụng không nên nâng cấp. Điều này cũng có thể được sử dụng trong trường hợp sử dụng của chúng tôi khi chúng tôi không thể cài đặt gói trên máy vì chúng tôi không có quyền. Để biết thêm thông tin về env ảo, hãy đọc tài liệu:https://virtualenv.pypa.io/en/stable/