Vâng, tôi nghĩ rằng bạn nên sử dụng virtualenv để triển khai nó vào sản xuất. Nó giúp mọi thứ trở nên dễ dàng hơn và sạch hơn cho bạn, đặc biệt nếu bạn có kế hoạch triển khai nhiều dịch vụ, ví dụ: django dựa trên các trang web hoặc các dự án python khác. Bạn không muốn mỗi người trong số họ gây ô nhiễm môi trường python toàn cầu với các gói của họ.
Tôi nghĩ virtualenv sẽ giúp bạn quản lý tất cả các phụ thuộc của bạn một cách sạch sẽ.
Để cập nhật env sản xuất của bạn tất cả các bạn cần phải làm là:
pip -r name_of_your_requirements_file.txt
tôi sử dụng virtualenvs trong sản xuất, và bạn có thể sử dụng uWSGI để phục vụ cho các ứng dụng, với Cherokee như một máy chủ web.
Để sử dụng virtualenv của bạn trong sản xuất, bạn sẽ cần phải thêm đường dẫn của nó vào PYTHONPATH của bạn.
Ví dụ nếu env của bạn có đường dẫn "/ home/www/my_project/env /", con đường để thêm sẽ là:
/home/www/env/lib/python2.7/site-packages/
Bạn có thể thiết lập này bằng nhiều cách khác nhau, nhưng nếu bạn đang tạo FCGI hoặc giao diện uWSGI qua manage.py, chỉ cần thêm dòng sau ở đầu rất của manage.py của bạn (trước phần còn lại):
import os
my_virtualenv_path = "/home/www/my_project/env/lib/python2.7/site-packages/"
# Add it to your PYTHONPATH
os.path.append(my_virtualenv_path)
bạn có thể thích ứng này để thiết lập của bạn, chỉ trong trường hợp bạn cũng có thể làm như sau trong vỏ:
export PYTHONPATH:$PYTHONPATH:/home/www/my_project/env/lib/python2.7/site-packages/
Bạn cũng sẽ cần phải thêm thư mục chứa tệp settings.py của bạn vào PYTHONPATH, vì vậy Django sẽ có thể khám phá nó. Chỉ cần tiến hành một cách tương tự để làm như vậy.
Lưu ý rằng tài liệu chính thức của Django đề cập đến việc sử dụng virtualenv trong sản xuất: https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/#using-a-virtualenv –
Tôi đã đề xuất hướng dẫn này bằng @ bartek [Sự đơn giản đẹp của triển khai nginx và uWSGI] (http://bartek.im/blog/2012/07/08/simplicity-nginx-uwsgi-deployment.html) –
Heroku đề xuất: https: // devcenter. heroku.com/articles/deploying-python –