Evgenii Legotckoi
Evgenii Legotckoi23 квітня 2019 р. 04:10

Django - Підручник 044. Як встановити та налаштувати Django на Mac OS

Пропоную розглянути процес встановлення та налаштування проекту Django на Mac OS X на основі існуючого проекту.

Деякі кроки будуть аналогічні до тих, які вже були виконані в статті з установки Django для Ubuntu .


Налаштування віртуального середовища

  1. Встановлення python 3
brew встановити python3
  1. InstУстановкаall pip
sudo easy_install pip
  1. Встановлення virtualenv та створення віртуального середовища
sudo pip3 встановити virtualenv
  1. Налаштування віртуального середовища для проекту
virtualenv project_env --python=python3
  1. Перейдіть до каталогу віртуального середовища проекту та клонуйте репозиторій.
CD project_env
клон git git@bitbucket.org:MyUser/project.git
  1. Ми також клонуємо підмодулі, якщо ваш проект використовує підмодуль git.
CD проект
git підмодуль init
Оновлення підмодуля git
  1. Я сподіваюся, що ви використовуєте файл requirements.txt, тому що настав час встановити всі необхідні пакети в проект
pip install -r requirements.txt

Встановіть потрібну версію Python

Якщо потрібна певна версія python, наприклад, якщо в репозиторіях вашого робочого сервера немає останньої версії, вам необхідно налаштувати Mac OS X спеціально для роботи з необхідною версією.

brew install pyenv
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
brew install zlib
pyenv install 3.6.7

Якщо ви не можете встановити python і виникає така помилка

BUILD FAILED (OS X 10.14.4 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274
Results logged to /var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274.log

Last 10 log lines:
  File "/private/var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274/Python-3.6.7/Lib/ensurepip/__main__.py", line 5, in <module>
    sys.exit(ensurepip._main())
  File "/private/var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274/Python-3.6.7/Lib/ensurepip/__init__.py", line 204, in _main
    default_pip=args.default_pip,
  File "/private/var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274/Python-3.6.7/Lib/ensurepip/__init__.py", line 117, in _bootstrap
    return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
  File "/private/var/folders/qk/l3vyb_653ksb55yt5r54rt380000gn/T/python-build.20190421214232.40274/Python-3.6.7/Lib/ensurepip/__init__.py", line 27, in _run_pip
    import pip._internal
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1

потім створіть файл .zshrc з таким вмістом

# For compilers to find zlib you may need to set:
export LDFLAGS="${LDFLAGS} -L/usr/local/opt/zlib/lib"
export CPPFLAGS="${CPPFLAGS} -I/usr/local/opt/zlib/include"

# For pkg-config to find zlib you may need to set:
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH} /usr/local/opt/zlib/lib/pkgconfig"

Далі виконайте решту дій.

source .zshrc
pyenv install 3.6.7

Перевірити доступні версії python

pyenv versions

Встановіть потрібну версію python

pyenv local 3.6.7
pyenv global 3.6.7

Перевірте версію Python, яка зараз використовується у Mac OS X.

python --version

Після цього вам потрібно буде повторити всі кроки з налаштувань віртуального оточення, починаючи з кроку 4, якщо ви вже встановили virtualenv. Або повністю повторити всі ці кроки.

Встановіть та налаштуйте PostgreSQL

  1. Видалення попередньої версії Postgres
brew uninstall --force postgresql
  1. Видалити всі файли Postgres
rm -rf /usr/local/var/postgres
  1. Встановлення Postgres за допомогою Homebrew
brew встановити postgres
  1. Установка PostGIS за допомогою Homebrew
brew встановити postgis
  1. Запустіть сервер PostgreSQL. Вам може знадобитися запускати цю команду, коли ви розробляєте сайт.
pg_ctl -D /usr/local/var/postgres start
  1. Створення бази даних проекту. Багато з цих кроків були описані в першій статті з налаштування Django на комп'ютері під керуванням ОС.
psql postgres
СТВОРИТИ БАЗУ ДАНИХ myproject;
CREATE USER myprojectuser WITH PASSWORD &#39;пароль&#39;;
ЗМІНИТИ РОЛЬ myprojectuser ВСТАНОВИТИ client_encoding НА &#39;utf8&#39;;
ЗМІНИТИ РОЛЬ myprojectuser ВСТАНОВИТИ default_transaction_isolation НА &#39;прочитане здійснено&#39;;
ЗМІНИТИ РОЛЬ myprojectuser ВСТАНОВИТИ часовий пояс НА &#39;UTC&#39;;
НАДАТИ ВСІ ПРИВІЛЕЇ НА БАЗУ ДАНИХ myproject ДЛЯ myprojectuser;
\q

Встановити та налаштувати Nginx.

Я використовую Nginx для розповсюдження статичного контенту, тому ми також встановимо Nginx машину для розробки.

brew install nginx
sudo brew services start nginx

Налаштування конфігурації Nginx

На цьому етапі необхідно налаштувати сервер Nginx. Для чого вам необхідно відредагувати файл nginx.conf, а також створити файл налаштувань вашого сервера в каталозі серверів.

nano /usr/local/etc/nginx/nginx.conf

Видаліть вміст файлу та додайте наступну інформацію.

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;
    include servers/*;
}

Потім створіть файл myproject

touch /usr/local/etc/nginx/servers/myproject

І додайте контент, який виглядатиме так.

server {
    listen 80;
    server_name 111.222.333.44; # здесь прописать или IP-адрес или доменное имя сервера

    location /static/ {
        root /Users/<user>/myprojectenv/myproject/myproject/;
        expires 30d;
    }

    location /media/ {
        root /Users/<user>/myprojectenv/myproject/myproject/;
        expires 30d;
    }

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Потім перезапустіть сервер Nginx

sudo brew services restart nginx

Висновок

А потім не забуваємо виконати міграцію бази, збір статичних файлів через collectstatic та інші необхідні у вашому проекті процедури.

Для Django я рекомендую Timeweb VDS-сервер .

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up
AD

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:50бали,
  • Рейтинг балів-4
m
  • molni99
  • 26 жовтня 2024 р. 01:37

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:80бали,
  • Рейтинг балів4
m
  • molni99
  • 26 жовтня 2024 р. 01:29

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:20бали,
  • Рейтинг балів-10
Останні коментарі
ИМ
Игорь Максимов22 листопада 2024 р. 11:51
Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Evgenii Legotckoi
Evgenii Legotckoi31 жовтня 2024 р. 14:37
Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
A
ALO1ZE19 жовтня 2024 р. 08:19
Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Игорь Максимов05 жовтня 2024 р. 07:51
Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas505 липня 2024 р. 11:02
QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Тепер обговоріть на форумі
Evgenii Legotckoi
Evgenii Legotckoi24 червня 2024 р. 15:11
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
t
tonypeachey115 листопада 2024 р. 06:04
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
NSProject
NSProject04 червня 2022 р. 03:49
Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
9
9Anonim25 жовтня 2024 р. 09:10
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

Слідкуйте за нами в соціальних мережах