将脚本放入virtualenv的bin中,然后将该bin位置添加到全局PATH中不会自动为您的virtualenv提供源。您确实需要先将其来源才能激活它。
系统所知道的就是检查可执行文件的额外路径并运行它。该脚本中没有任何内容指示virtualenv。
但是,您可以将she-bang行硬编码到virtualenv python中,在这种情况下,站点包将最终出现在路径上:
#!/Users/foo/environments/project/env/bin/python
或者,另一个选择是简单地创建一个小的bash包装器,该包装器将调用原始的pythons脚本,这将使您可以将原始脚本保留为通用的she-bang。
因此,如果myscript.py是: #!/usr/bin/env python
…
然后,您可以进行myscript
:
#!/bin/bash
/Users/foo/environments/project/env/bin/python myscript.py
完成后myscript
,它将使用您设置的解释器显式调用python脚本。