当我创建virtualenv时,它会安装setuptools和pip。是否可以将新包添加到此列表中?
用例示例:
答案 0 :(得分:2)
您可以编写一个Python脚本,例如说context
,它扩展了personalize_venv.py
类并覆盖了EnvBuilder
方法,用于安装所需的任何默认软件包。
您可以从https://docs.python.org/3/library/venv.html#an-example-of-extending-envbuilder中获取基本示例。
这不需要钩子。使用指向您的venv目录的命令行参数post_setup()
直接运行脚本。挂钩是dirs
类的post_setup()
方法本身。
答案 1 :(得分:1)
您可以使用引导脚本来执行任何操作 见https://virtualenv.pypa.io/en/latest/reference.html#creating-your-own-bootstrap-scripts
我没有使用它的经验,但它似乎是您想要的,来自手册。
答案 2 :(得分:1)
我从选择的正确答案中采取了不同的方法。
我选择了我的目录,例如~/.virtualenv/deps
,并通过
pip install -U --target ~/.virtualenv/deps ...
接下来postmkvirtualenv
我提出以下内容:
# find directory
SITEDIR=$(virtualenvwrapper_get_site_packages_dir)
PYVER=$(virtualenvwrapper_get_python_version)
# create new .pth file with our path depending of python version
if [[ $PYVER == 3* ]];
then
echo "/Users/home/.virtualenvs/elpydeps3/" > "$SITEDIR/extra.pth";
else
echo "/Users/home/.virtualenvs/elpydeps/" > "$SITEDIR/extra.pth";
fi