python 虚拟环境.exe文件使用

python virtual environment .exe file usage

运行 脚本与首次采购有什么区别:

source /venv/bin/activate
python script.py

和 运行 带有实际 python exe 的脚本?

/venv/bin/python script.py

这两个命令总是做同样的事情吗?我看到的问题是,如果 script.py 调用其他 python 脚本,则 venv 中的设置和包不起作用。

这取决于 script.py 运行 其他脚本如何。如果它使用 sys.executable,即当前的 python,/venv/bin/python 那么这两个命令是等价的。

如果 script.py 运行s 其他脚本使用 shell(os.systemsubprocess 等),那么第一个是首选形式,因为它为所有子进程设置 $PATH,以便所有 python 脚本使用相同的虚拟环境。

还有最后的说明。如果 script.py 中 运行 的某些脚本已经修复了像 #!/usr/bin/python 这样的 shebang,那么无论您采用第一种或第二种方式,这些脚本都不会 运行 在您的虚拟环境中 运行 script.py.