J'ai configuré Django à partir de zéro (Vagrant, Centos, Python3)

introduction

L'autre jour, j'ai essayé d'utiliser Anaconda dans un environnement local, mais j'ai pensé: "Est-il possible d'afficher ceci sur un navigateur ...?", J'ai donc décidé de créer un environnement dans lequel Django peut être utilisé.

Cette fois, je suis passé du lancement de la boîte de Vagrant à l'affichage de l'écran du serveur virtuel Django sur le navigateur.

Finalement, Remplissez le formulaire sur le navigateur → Le modèle d'apprentissage automatique est calculé côté serveur en fonction des données envoyées → Renvoyer le résultat au navigateur J'aimerais créer une application comme celle-là.

Environnement d'exécution

OS hôte: Windows10 OS invité: Centos7 (Vagrant)

Faire une boîte vagabonde

Ceci est basé sur Hello World in Vagrant + Python3 + Django environment. Travaillez à l'invite de commande.

vagrant box add centos/7
vagrant init centos/7

Ajoutez les deux lignes suivantes au Vagrantfile généré.

config.vm.synced_folder "./", "/home/vagrant/work"
config.vm.network "forwarded_port", guest: 8000, host: 18000

Revenez à l'invite de commande et démarrez vagrant.

vagrant up
vagrant ssh

Installez Python 3

Par défaut, seul python2 est inclus, je souhaite donc inclure python3. Considérant l'avenir, j'ai pensé que ce serait une bonne idée d'utiliser un logiciel de gestion de version, j'ai donc décidé d'utiliser pyenv. Il semble être obsolète ... Reportez-vous à Installation de Python3 à l'aide de pyenv.

Préparez tout ce dont vous avez besoin. A partir de là, je travaille sur Teraterm. vagrant ssh peut être bien.

$ sudo yum groupinstall "Development tools"
$ sudo yum install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel git

Installez pyenv

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ source .bash_profile

Mettez à jour pyenv avec la dernière version

$ pyenv --version
pyenv 1.2.3-43-g35f7ef8
$ pyenv install --list #Il y a beaucoup de pythons qui peuvent être installés
$ pyenv install 3.8.3 #Assurez-vous que vous disposez de la version que vous souhaitez utiliser et installer
$ pyenv global 3.8.3

Vérifiez la version de pyenv, python

$ pyenv versions
  system
* 3.8.3 (set by /home/vagrant/.pyenv/version)
$ python --version
Python 3.8.3

Installez Django

Supprimez l'ancien Django (j'espère que vous pourrez confirmer qu'il n'existe pas)

$ python -c "import django; print(django.__path__)"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named django

Installez virtualenv, virtualenvwrapper, django

$ pip install virtualenv
$ pip install virtualenvwrapper
$ pip install Django

Vérification de la version de Django

$ python -m django --version
3.0.6

Mise à niveau de la version SQLite3

SQLite3, qui est inclus par défaut dans Vagrant, semble être une ancienne version, et si vous essayez de démarrer le serveur tel quel, une erreur se produira, alors installez-en une nouvelle. Introduction à Django (Tutoriel) -Introduction au WWW de Tohoho a été utile.

$ yum install -y wget gcc make
$ wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz
$ tar zxvf ./sqlite-autoconf-3290000.tar.gz
$ cd ./sqlite-autoconf-3290000
$ ./configure --prefix=/usr/local
$ make
$ make install
$ cd ..
$ rm -rf ./sqlite-autoconf-3290000 ./sqlite-autoconf-3290000.tar.gz
$ mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
$ ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
$ echo 'export LD_LIBRARY_PATH="/usr/local/lib"' >> ~/.bashrc
$ source ~/.bashrc

Connectez-vous au serveur virtuel de Django

Créez un projet sous / home / vagrant / work. Comme il a été défini avec Vagrantfile, les fichiers et les applications créés ici seront partagés localement et dans l'environnement virtuel.

config.vm.synced_folder "./", "/home/vagrant/work"

Création de projet Django

$ cd /home/vagrant/work
$ django-admin startproject mysite #mysite est le nom de votre projet préféré
$ cd mysite #Passer au projet
$ python manage.py runserver 0:8000 #Démarrage du serveur

Après cela, tapez http://127.0.0.1:8000 dans le navigateur pour ouvrir la page!

django.jpg

en conclusion

Au départ, le serveur fonctionnait, mais le navigateur ne pouvait rien afficher, ce qui représentait beaucoup de travail. Je suis content d'avoir réussi à le résoudre moi-même. Cependant, j'ai l'impression de l'avoir fait, mais ce n'est que la phase de préparation. Il semble y avoir un long chemin à parcourir jusqu'à ce que la demande soit terminée.

référence

De l'installation de Vagrant à Django en général: Hello World in Vagrant + Python3 + Django environment

Mise à niveau de la version SQLite3: Introduction à Django (Tutoriel) -Introduction au WWW de Tohoho

Installation et gestion de python: Installation de Python3 avec pyenv

Recommended Posts

J'ai configuré Django à partir de zéro (Vagrant, Centos, Python3)
Configurer l'environnement Python sur CentOS
Django memo n ° 1 à partir de zéro
[Vagrant] Configurer un serveur API simple avec python
Configurer Python 3.4 sur Ubuntu
Django à partir de zéro (partie: 2)
Django à partir de zéro (partie: 1)
Configurer pour Mac (Python)
Installez Python 3.7 et Django 3.0 (CentOS)
Passer de python2.7 à python3.6 (centos7)
Configurer un serveur Web avec CentOS7 + Anaconda + Django + Apache
Configurer la connexion sociale avec Django
Je veux utiliser jar de python
Efficacité commerciale à partir de zéro avec Python
J'ai une question! (Python, django) Facile
Connexion de python à MySQL sur CentOS 6.4
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Ce que j'ai obtenu de Python Boot Camp
Utiliser Django à partir d'un script Python local
[Python] [Traitement du langage naturel] J'ai essayé le Deep Learning ❷ fait de toutes pièces en japonais ①
[Deep Learning from scratch] Accélération du réseau de neurones J'ai expliqué le traitement de la propagation arrière
[Python] J'ai essayé le même calcul que la prédiction de LSTM à partir de zéro [Keras]
Configurer un serveur HTTPS simple avec Python 3
Traitement d'image à partir de zéro avec python (5) Transformation de Fourier
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
[Python] Je veux gérer 7DaysToDie depuis Discord! 1/3
J'ai essayé Python! ] Diplômé aujourd'hui de "Tout le monde Python! Qu'est-ce que Python!"!
Configurez un serveur SMTP de test en Python.
Traitement d'image à partir de zéro avec python (4) Extraction de contour
Lier PHP et Python à partir de zéro sur Laravel
Configurer un environnement Tornado pour Python dans Raspbian Jessie
Je veux utiliser le solveur ceres de python
Exécutez des fichiers Python à partir de HTML en utilisant Django
Configurer un serveur SMTP simple en Python
Configurer un environnement de développement Python sur Marvericks
Résumé Python vs Ruby "Deep Learning from scratch"
Ce que j'ai fait lors de la mise à jour de Python 2.6 vers 2.7
[Python] Je veux gérer 7DaysToDie depuis Discord! 2/3
Je veux créer du code C ++ à partir de code Python!