2016-11-18 1 views
1

J'essaie d'utiliser SQLAlchemy avec python. Ma configuration est comme ceci:Est-il possible d'invoquer l'interpréteur python de virtualenv en incluant une ligne dans le script?

mkdir project 
cd project 
virtualenv project-env 
project-env/bin/pip install SQLAlchemy 

activer l'environnement en naviguant dans le répertoire bin et en utilisant:

source activate 

Cependant, je récemment ai suivi quelques tutoriels Flask (Flask également installé dans un env virtuel) et a remarqué que cette étape n'est pas nécessaire pour exécuter les scripts correctement. https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

Dans le fichier python du tutoriel (run.py) il y a la ligne:

#!flask/bin/python 

est ce paramètre le chemin de l'interprète? J'ai essayé:

#!project-env/bin/python 

Dans mon script et cela ne fonctionne pas. Y a-t-il un moyen de faire cela? Tous les pointeurs seraient vraiment appréciés! Merci!

+0

Qu'est-ce que vous êtes le message d'erreur se? – Billy

Répondre

2

C'est une ligne terrible tralala utilisé dans le tutoriel; c'est relatif, ce qui signifie que cela ne fonctionne que si vous vous trouvez dans un répertoire de travail qui se trouve directement en dehors de l'environnement virtuel.

C'est, pour ce tralala à travailler, lorsque l'env virtuel est ~/foo/bar/project-env, lorsque vous exécutez le script, la seule façon dont il fonctionne est si vous avez cd ed à ~/foo/bar. Même si le script est dans ~/foo/bar, il ne fonctionnera pas à moins que vous ne soyez également là.

utiliser un chemin absolu, ou utiliser une ligne de shebang canonique et en fait activer le premier environnement virtuel. Je recommanderais ce dernier (je ne suis pas entièrement convaincu que d'autres réglages apportés par le script activate ne sont pas importants dans certains cas), mais le premier se comportera comme le didacticiel attendu.