使用virtualenv解释器运行脚本(没有virtualenv激活)和在激活的virtualenv中运行脚本有区别吗?
venv/bin/python some_script.py
VS
source venv/bin/activate
python some_script.py
答案 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)
是的,只需检查您的环境变量,无论是否激活,都可以查看您将丢失的内容。