我试图将SQLAlchemy与python一起使用。我的设置是这样的:
mkdir project
cd project
virtualenv project-env
project-env/bin/pip install SQLAlchemy
我通过导航到bin
目录并使用:
source activate
但是我最近刚刚关注了一些Flask教程(Flask也安装在虚拟环境中),并注意到正确运行脚本不需要此步骤。 https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world
在教程(run.py
)的python文件中有一行:
#!flask/bin/python
这是设置解释器的路径吗?我试过了:
#!project-env/bin/python
在我的脚本中,它不起作用。有没有办法做到这一点?任何指针都会非常感激!谢谢!
答案 0 :(得分:2)
这是教程中使用的可怕的shebang线;它是相对的,这意味着只有当你碰巧在一个直接在虚拟环境之外的工作目录时它才有效。
也就是说,为了让shebang工作,当虚拟环境在~/foo/bar/project-env
时,当你运行脚本时,唯一可行的方法就是你cd
编辑~/foo/bar
1}}。即使脚本位于~/foo/bar
中,除非您cd
在那里,否则它将无效。
使用绝对路径,或使用规范的shebang线并首先实际激活虚拟环境。我推荐后者(我不完全相信activate
脚本的其他调整在某些情况下并不重要),但前者的行为与你所链接的教程一样。