J'ai cloné mon projet Django à partir du compte Github et activé le virtualenv à l'aide de la célèbre commande source nameofenv/bin/activate
Et quand je lance python manage.py runserver
Cela me donne une erreur en disant:
ImportError: Impossible d'importer Django. Êtes-vous sûr qu'il est installé et disponible sur votre variable d'environnement PYTHONPATH? Avez-vous oublié d'activer un environnement virtuel?
Je pensais que chaque dépendance dont j'avais besoin pourrait être présente dans virtualenv.
Et bien non. Par défaut, un virtualenv nouvellement créé est vide, c'est-à-dire sans bibliothèque tierce. (Facultativement, vous pouvez autoriser un serveur virtuel à accéder aux bibliothèques installées sur l’ensemble du système, mais c’est une autre histoire.)
Une fois que virtualenv est créé, vous devez installer les dépendances dont vous avez besoin.
(Comment virtualenv pourrait-il savoir de quelles dépendances vous avez besoin?)
La procédure consiste à installer virtualenv, à l'activer, puis à installer les bibliothèques nécessaires au projet (dans votre cas, Django et peut-être d'autres).
Si votre projet a un fichier Requirements.txt, vous pouvez installer toutes les dépendances requises à l’aide de la commande suivante:
pip install -r requirements.txt
Si votre projet a un fichier setup.py, vous pouvez aussi exécuter
pip install -e path/to/your/project/clone/.
installer le projet dans le virtualenv. Cela devrait installer les dépendances.
Bien sûr, si Django est la seule dépendance, vous pouvez simplement taper
pip install Django
sur la version d'ubuntu
#install python pip
Sudo apt-get install python-pip
#install python virtualenv
Sudo apt-get install python-virtualenv
# create virtual env
virtualenv myenv
#activate the virtualenv
. myenv/bin/activate
#install Django inside virtualenv
pip install Django
#create a new Django project
Django-admin.py startproject mysite
#enter to the folder of the new Django project
cd mysite
#run the Django project
python manage.py runserver
Je suppose que vous téléchargez également l'environnement virtuel depuis votre autre ordinateur. Et vous espérez que le fait d’activer cela fonctionnera, bzz.
Il n'est pas recommandé de télécharger les fichiers virtualenv dans votre référentiel git, car @Alain indique qu'il est recommandé de disposer d'un fichier requirements.txt
contenant les dépendances du projet. Vous pouvez utiliser pip freeze > requirements.txt
(lorsque l'environnement est activé) pour générer le fichier de configuration requise du projet.
Ainsi, lorsque vous clonez le référentiel à partir d'un autre ordinateur, vous devez créer un nouveau virtualenv en exécutant la commande suivante:
virtualenv nameofenv
puis activez-le:
source nameofenv/bin/activate
et enfin, utilisez le fichier de conditions pour installer les conditions pour votre projet en utilisant:
pip install -r requirements.txt
Si vous avez plusieurs python
sur votre ordinateur, par exemple, python2.7
, python3.4
, python3.6
, il est importé pour déterminer la version à laquelle la référence python
se réfère réellement, et plus encore, à quelle version la référence pip
se réfère-t-elle.
Le même problème s'est posé après l'installation du let's encrypt
lorsque j'exécute la commande suivante.
(python3 manage.py runserver 0:8000 &)
J'ai inspecté la version python
et constaté que python3
, python3.4
, python3.6
, python3.4m
étaient tous disponibles.
Je viens de changer python3
à python3.6
et résolu le problème.
(python3.6 manage.py runserver 0:8000 &)
Donc, il s’agit probablement d’un problème de non-concordance des versions s’il est acceptable pendant longtemps et s’arrête brutalement.
J'avais installé Django 2 via pip3 install Django
, mais j'utilisais python manage.py runserver
au lieu de python3 manage.py runserver
. Django 2 ne fonctionne qu'avec Python 3+.