和往常一样,答案是“视情况而定”。
这个
virtualenv
和
pipenv
工具将所选python版本复制到
env/bin/
。这意味着virtualenv不会接收点发布。
$ file env/bin/python3
env/bin/python3: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV)
推荐的
venv
(以前
pyvenv
)然而,该工具(在linux上)创建了一个指向它所使用的python版本的符号链接(可以将其视为文件系统的“重定向”)。这意味着,如果原始可执行文件被替换,则virtualenv将自动接收点版本:
$ file env/bin/python3.6
env/bin/python3.6: symbolic link to /usr/bin/python3.6
此行为是可调的,并且
venv公司
即使不使用符号链接,也可以升级现有版本:
$ python3.6 -m venv -h
[...]
--symlinks Try to use symlinks rather than copies, when symlinks
are not the default for the platform.
--copies Try to use copies rather than symlinks, even when
symlinks are the default for the platform.
--upgrade Upgrade the environment directory to use this version
of Python, assuming Python has been upgraded in-place.
[...]
据我所知
virtualenv公司
该工具没有此类功能,这可能是建议使用该工具的原因之一
venv公司
而是现在。