给venv增加额外的Python包路径

问题介绍

使用venv可以建立隔离的Python环境,比如 virtualenv 或 python3 -m venv可以创建venv。 这时,如果我们需要的某个包已经安装在了系统中,但并不在我们的venv的路径下,该怎么办才能加进来呢?

在网上搜索之后,我发现,这个问题有多种解决办法。最简单的办法是使用pth机制。

案例问题描述

我们已有venv环境 ~/venv, 现在想把 /var/lib/pyfoo/dist-packages 加入到路径中。 该路径下有我们需要的包 bar。

操作步骤

首先,创建pth文件 _venv_ext.pth, 其内容如下,

$ cat _venv_ext.pth
/var/lib/pyfoo/dist-packages

然后,将该文件放到 venv的 site-packages下,

$ mv _venv_ext.pth ~/venv/lib/python …

Continue Reading