繁体   English   中英

virtualenv如何创建不同的python环境?

[英]How can virtualenv create different python environments?

我的服务器有3个virtualenv脚本:

$ ls -lt virtual*
lrwxrwxrwx 1 root root  4 Nov 22 06:19 virtualbox -> VBox
-rwxr-xr-x 2 root root 55 Aug 14 19:34 virtualenv
-rwxr-xr-x 1 root root 55 Aug 14 19:34 virtualenv2
-rwxr-xr-x 2 root root 55 Aug 14 19:34 virtualenv3
$ cat virtualenv
#!/usr/bin/python3
import virtualenv
virtualenv.main()
$ cat virtualenv2
#!/usr/bin/python2
import virtualenv
virtualenv.main()
$ cat virtualenv3
#!/usr/bin/python3
import virtualenv
virtualenv.main()

我知道virtualenv2用于创建Python 2环境,而virtualenv3用于Python 3 但是令我困惑的是,为什么仅在shebang行中将/usr/bin/python2修改为/usr/bin/python3就能达到创建不同环境的效果? 它背后的魔力是什么?

有两个“魔术”。

1)shebang行通知内核要使用的正确解释器。 当您调用virtualenv2 ,内核会将其扩展为/usr/bin/python2 virtualenv2 同样,当您调用vitualenv3 ,内核会将其扩展为/usr/bin/python3 virtualenv3

2) virtualenv.main()基于当前运行的解释器创建虚拟环境。 例如,如果virtualenv.main()/usr/bin/python3调用,则它将基于/usr/bin/python3创建一个虚拟环境。

希望您可以看到这两个“魔术”项目一起执行了预期的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM