我使用创建了一个虚拟环境
python -m venv venv
现在我打开 Python shell,但不激活虚拟环境,运行
import sys
print(sys.path, sys.prefix)
我明白了
['', '/usr/lib/python312.zip', '/usr/lib/python3.12', '/usr/lib/python3.12/lib-dynload', '/usr/lib/python3.12/site-packages'] /usr
这正是我所期待的。
如果我激活环境,则输出为
['', '/usr/lib/python312.zip', '/usr/lib/python3.12', '/usr/lib/python3.12/lib-dynload', '/home/myname/mypath/venv/lib/python3.12/site-packages'] /home/myname/Projects/pypath/venv
令我沮丧的是,即使在 venv内部,解释器似乎也首先在系统范围的位置搜索包,然后才在 venv 目录内搜索包。
这是真的吗?