Evgenii Legotckoi
Evgenii LegotckoiСәуір 23, 2019, 4:10 Т.Ж.

Django - Оқулық 044. Mac OS жүйесінде Django орнату және конфигурациялау

Мен бар жоба негізінде Mac OS X жүйесінде Django жобасын орнату және конфигурациялау процесін қарастыруды ұсынамын.

Кейбір қадамдар [Ubuntu үшін Django орнату мақаласында] орындалғандарға ұқсас болады (https://evileg.com/en/post/3/).


Виртуалды ортаны орнату

  1. Python 3 орнатыңыз
brew орнату python3

2.Барлық пипті орнату

sudo easy_install пип
  1. virtualenv орнатыңыз және виртуалды орта жасаңыз
sudo pip3 virtualenv орнату
  1. Жоба үшін виртуалды ортаны орнатыңыз
virtualenv project_env --python=python3
  1. Жобаның виртуалды орта каталогына өзгертіңіз және репозиторийді клондаңыз.
cd project_env
git clone git@bitbucket.org:MyUser/project.git
  1. Егер жобаңыз git ішкі модулін пайдаланса, біз ішкі модульдерді де клондаймыз.
CD жобасы
git субмодулі init
git субмодульін жаңарту
  1. Мен талаптар.txt файлын пайдаланасыз деп үміттенемін, себебі жобада барлық қажетті бумаларды орнату уақыты келді.
pip install -r талаптар.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

Mac OS X жүйесінде қазір қолданылып жатқан Python нұсқасын тексеріңіз.

python --version

Осыдан кейін virtualenv орнатқан болсаңыз, 4-қадамнан бастап виртуалды орта параметрлерінен барлық қадамдарды қайталау қажет болады. Немесе осы қадамдардың барлығын толығымен қайталаңыз.

PostgreSQL орнату және конфигурациялау

  1. Postgres бағдарламасының алдыңғы нұсқасын жою
brew uninstall --force postgresql
  1. Барлық Postgres файлдарын жойыңыз
rm -rf /usr/local/var/postgres
  1. Homebrew көмегімен Postgres орнату
brew install postgres
  1. Homebrew көмегімен PostGIS орнату
brew install postgis
  1. PostgreSQL серверін іске қосыңыз. Бұл пәрменді сайт жасаған сайын іске қосу қажет болуы мүмкін.
pg_ctl -D /usr/local/var/postgres басталады
  1. Жоба деректер қорын құру. Осы қадамдардың көпшілігі операциялық жүйемен жұмыс істейтін машинада Django орнату туралы ең бірінші мақалада қарастырылды.
psql postgres
ДЕРЕКТЕР ҚОРЫН ЖАСАУ менің жобам;
ПАЙДАЛАНУШЫ myprojectuser &#39;құпиясөз&#39; ҚҰПИЯ СӨЗІМЕН ЖАСАУ;
РОЛДЫ ӨЗГЕРТУ myprojectuser client_encoding &#39;utf8&#39; ОРНАТУ;
myprojectuser РӨЛІН ӨЗГЕРТУ default_transaction_isolation ОРНАТУ &quot;орындалды&quot;;
РӨЛДІ ӨЗГЕРТУ myprojectuser уақыт белдеуін «UTC» ОРНАТУ;
myprojectuser үшін myproject ДЕРЕКТЕР БАЗАСЫНДА БАРЛЫҚ АРТЫҚШЫЛЫҚТАРДЫ БЕРУ;
\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/*;
}

Содан кейін менің жобам файлын жасаңыз

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-server ұсынамын.

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

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз
Г

C++ - Тест 001. Первая программа и типы данных

  • Нәтиже:66ұпай,
  • Бағалау ұпайлары-1
t

C++ - Тест 001. Первая программа и типы данных

  • Нәтиже:33ұпай,
  • Бағалау ұпайлары-10
t

Qt - Тест 001. Сигналы и слоты

  • Нәтиже:52ұпай,
  • Бағалау ұпайлары-4
Соңғы пікірлер
G
GoattRockҚыр. 3, 2024, 1:50 Т.Қ.
Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
d
dblas5Шілде 5, 2024, 11:02 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
k
kmssrАқп. 8, 2024, 6:43 Т.Қ.
Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Енді форумда талқылаңыз
Evgenii Legotckoi
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
F
FynjyШілде 22, 2024, 4:15 Т.Ж.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
BlinCT
BlinCTМаусым 25, 2024, 1 Т.Ж.
Нарисовать кривую в qml Всем привет. Имеется Лист листов с тосками, точки получаны интерполяцией Лагранжа. Вопрос, как этими точками нарисовать кривую? ChartView отпадает сразу, в qt6.7 появился новый элемент…
BlinCT
BlinCTМамыр 5, 2024, 5:46 Т.Ж.
Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
Evgenii Legotckoi
Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.

Бізді әлеуметтік желілерде бақылаңыз