在没有virtualenv激活的情况下运行脚本

时间:2015-01-30 01:45:08

标签: python virtualenv

使用virtualenv解释器运行脚本(没有virtualenv激活)和在激活的virtualenv中运行脚本有区别吗?

venv/bin/python some_script.py

VS

source venv/bin/activate
python some_script.py

3 个答案:

答案 0 :(得分:4)

运行source bin/activate会将PATH变量设置为指向您的环境bin目录,如果您安装了其他命令行脚本/二进制文件,这将非常有用(某些python包可以添加shell命令) ),它也会取消/设置PYTHONHOME。

所以,如果bin/python适合你,那么你很好,但是如果你使用的某些软件包开始表现得很奇怪(或者错误的软件包被导入),那可能是因为Python正在错误地使用PYTHONHOME,或者因为在PATH中找不到某个脚本。

答案 1 :(得分:2)

是。 Virtualenv凭借自己的权利创建了一名翻译。就这样做,

which python

对于每位口译员virtualenv和您的普通口译员,看看会发生什么。他们将向您展示两个不同的python解释器链接。这是我的榜样:

quazinafiulislam@Nafiuls-Mac: ~/Code/Python/PyTestingZone
 $ which python                                                                                               [7:49:26]
/Users/quazinafiulislam/.pyenv/shims/python

quazinafiulislam@Nafiuls-Mac: ~/Code/Python/PyTestingZone
 $ source .venv/bin/activate                                                                                  [7:49:29]
(.venv)
quazinafiulislam@Nafiuls-Mac: ~/Code/Python/PyTestingZone
 $ which python                                                                                               [7:49:35]
/Users/quazinafiulislam/Code/Python/PyTestingZone/.venv/bin/python

答案 2 :(得分:1)

是的,只需检查您的环境变量,无论是否激活,都可以查看您将丢失的内容。