2015-06-10 18 views
5

Tôi thường triển khai các ứng dụng Flask của mình bằng một kịch bản lệnh khá đơn giản để đặt nguồn trên máy đích, sử dụng pip để cài đặt bất kỳ phụ thuộc nào, sau đó kích hoạt uwsgi với tất cả các cài đặt cần thiết và tắt nó đã đi.Triển khai Python/Flask mà không cần pip

Tuy nhiên, tôi có một vấn đề mới là một số cài đặt bảo mật mới trong môi trường đã chặn chúng tôi truy cập bên ngoài mạng nên cố gắng sử dụng pip để cài đặt các phụ thuộc của chúng tôi không thành công. Tôi đã xem xét việc sử dụng python setup.py sdist để tạo một gói nghĩ rằng điều này sẽ xây dựng mọi thứ trên máy phát triển sau đó tôi có thể tải lên .tar.gz vào máy triển khai và cài đặt nó nhưng vẫn đang cố gắng liên hệ với pip để nhận phụ thuộc.

Có cách nào để có được gói hoàn chỉnh được biên dịch với các phụ thuộc và tất cả những gì tôi có thể sử dụng để triển khai cho máy chủ của mình không? Có một số cài đặt sdist tôi có thể sử dụng không?

Trả lời

2

Giả sử máy xây dựng của bạn tương thích nhị phân với đích hoặc bạn không cần bất kỳ tiện ích mở rộng được biên dịch nào, bạn có thể sử dụng pip wheel để biên dịch dự án và tất cả phụ thuộc vào bánh xe, sao chép các tệp đó vào máy chủ và pip install chỉ từ thư mục bánh xe.

# on build machine 
cd myproject 
pip wheel --wheel-dir wheelbase . 
scp -r wheelbase [email protected] 

# on target machine 
pip install --no-index --find-links=wheelbase myproject 

Bạn có thể sao chép sdist lẻ vào thư mục --find-links, trong trường hợp pip sẽ cài đặt từ sdist, nếu bạn phải biên dịch lại trên máy chủ.

+0

Điều này có vẻ đầy hứa hẹn. Tôi đã thử cách của bạn và có vẻ như nó đã không cài đặt tất cả các gói tôi cần. Tôi đã thử xây dựng bánh xe từ file requirements.txt mà dường như để có được tất cả các gói của tôi bây giờ nhưng khi tôi đã cố gắng để cài đặt chúng trên hộp tôi đã nhận MarkupSafe-0.23-cp27-none-linux_i686.whl không phải là một bánh xe được hỗ trợ trên nền tảng này . Tôi nhìn vào thư mục bánh xe và nó có bánh xe đó. Máy dev của tôi là Ubuntu và mục tiêu của tôi là CentOS. Bất kỳ đề xuất? – ThrowsException

+0

Tải xuống trình đánh dấu MarkupSafe và đặt nó trong thư mục bánh xe. Pip nên đủ thông minh để xây dựng máy mục tiêu đó. Hoặc chỉ cần xây dựng trên một máy ảo CentOS. https://pypi.python.org/pypi/MarkupSafe – joeforker

+0

Cảm ơn. Tôi đã làm việc sau. Được xây dựng trên một máy centos hiện có và sao chép wheeldir hơn. Dường như có mọi thứ tôi cần bây giờ. – ThrowsException

Các vấn đề liên quan