web-dev-qa-db-fra.com

L'installation de Virtualenv et l'activation de virtualenv ne fonctionnent pas

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?

7
abhi_bond

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
14
Jérôme

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 
10

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
2
slackmart

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.

1
W.Perrin

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+.

0
cph2117