Я использовал VMware с 2002. Мое первое использование должно было создать среду разработки в госте VM, затем копировать его для моих товарищей по команде. Когда это прибыло время для модернизации оборудования, я переключился на свой новый рабочий стол приблизительно за час (установите VMware, скопируйте VM).
я постоянно использую VMware, на рабочих столах, на ноутбуках, и на серверах. Я использую их для разработки, тестирования и производства. Я попытался играть в игры в VM, но большинство игр просто не сокращает его (и VMware заявляет так, но я попробовал так или иначе). Однако новейшие версии VMware Workstation просто могли бы играть в несколько игр хорошо.
мне особенно нравится VMware на моем ноутбуке, и мне действительно нравится использовать его для Ubuntu Linux. Я нахожу, что он лучше всего до сих пор использует Windows (2000 Pro SP4 или XP) для хоста ОС из-за превосходящих драйверов устройств. Однако я предпочитаю на самом деле работать над Ubuntu для своей разработки, но это работает отлично в VM. Я установил Ubuntu непосредственно на различных аппаратных средствах, но до сих пор не был удовлетворен достаточно для оставления его в течение больше, чем нескольких месяцев прежде, чем вернуться к Windows снова.
Однако мой ноутбук действительно запускает Ubuntu приятно, и я только вернулся назад к Windows XP, потому что я хочу загрузить eSATA карту, которая предоставит мне высокоэффективный доступ к внешнему жесткому диску, чтобы... выполнить VMs!!! Я еще еще не сделал той установки из-за отвлекающих факторов на работе.
Разговор о работе... Я "получил" три старых осиротевших рабочих стола, что я превращаюсь в хосты VM. Я собираюсь делать попытку загружающегося VMware ESXI, хотя я только что закончил загружаться два с Windows 2000 Pro SP4 и VMware Server 1.0.8. Я управляю группой разработчиков, и я, прежде всего, нацелен на эти VMs для сред разработки, так как наша компания наносит вред нашим основным рабочим столам/ноутбукам слишком много для реальной работы.
Напиток Koolaid!!! VMware является потрясающим, и существует много других хороших опций VM также!
С наилучшими пожеланиями.
РЕДАКТИРОВАНИЕ: больше положительных героев...
, В частности, выезд VMware ESXI, VMware Server и Ubuntu JeOS. Вкусный материал!!!
server = request.META.get('wsgi.file_wrapper', None)
if server is not None and server.__module__ == 'django.core.servers.basehttp':
print('inside dev')
Конечно, wsgi.file_wrapper
может быть установлен в META и иметь класс из модуля с именем django.core.servers.basehttp
крайнее совпадение в другой серверной среде, но я надеюсь, что это поможет вам.
Между прочим, я обнаружил это, создав синтаксически недопустимый шаблон во время работы на сервере разработки, и искал интересные вещи в Traceback
и Request information
, так что я просто редактирую свой ответ, чтобы подтвердить идеи Нейта.
settings.DEBUG может иметь значение True и работать под Apache или другим сервером, не предназначенным для разработки. Он все равно будет работать. Насколько я могу судить, в среде выполнения нет ничего, кроме проверки pid и сравнения с pid в ОС, которые предоставят вам эту информацию.
Использование settings.DEBUG - самый элегантный способ AFAICS, поскольку он также иногда используется в базе кода Django.
Я полагаю, что вам действительно нужен способ автоматически устанавливать этот флаг без необходимости обновлять его вручную каждый раз, когда вы загружаете проект на рабочие серверы.
Для этого я проверяю путь к settings.py (в settings.py), чтобы определить, на каком сервере запущен проект:
if __file__ == "path to settings.py in my development machine":
DEBUG = True
elif __file__ in [paths of production servers]:
DEBUG = False
else:
raise WhereTheHellIsThisServedException()
Имейте в виду, что вы также можете предпочесть выполнить эту проверку с переменными среды, как предлагает @Soviut. Но для человека, разрабатывающего Windows и обслуживающего Linux, проверка путей к файлам была проще, чем использование переменных среды.
Обычно я устанавливаю переменную с именем среда
и установите ее на «РАЗРАБОТКА», «СТАДИЯ» или «ПРОИЗВОДСТВО». Затем в файле настроек я могу добавить базовую логику для изменения используемых настроек в зависимости от среды.
РЕДАКТИРОВАТЬ: Кроме того, вы можете просто использовать эту логику для включения различных settings.py
файлы, которые переопределяют базовые настройки. Например:
if environment == "DEBUG":
from debugsettings import *
Одно из различий между средой разработки и развертывания заключается в том, на каком сервере она работает. Что именно будет отличаться, будет зависеть от вашей среды разработки и развертывания.
Зная ваши собственные среды разработки и развертывания, можно использовать переменные HTTP-запроса для различения между ними. Посмотрите на переменные запроса вроде request.META.HTTP_HOST
, request.META.SERVER_NAME
и request.META.SERVER_PORT
и сравните их в эти две среды.
Бьюсь об заклад, вы найдете что-то совершенно очевидное, что отличается и может использоваться для определения вашей среды разработки. Выполните тест в settings.py
и установите переменную, которую можно использовать в другом месте.