python3Packages.venvShellHook: add postVenvCreation (#87850)
* python3Packages.venvShellHook: add postVenvCreation * python: docs: add postVenvCreation explaination
This commit is contained in:
parent
3233d3f0e3
commit
15b3d9d277
|
@ -1023,7 +1023,8 @@ are used in `buildPythonPackage`.
|
||||||
- `setuptoolsBuildHook` to build a wheel using `setuptools`.
|
- `setuptoolsBuildHook` to build a wheel using `setuptools`.
|
||||||
- `setuptoolsCheckHook` to run tests with `python setup.py test`.
|
- `setuptoolsCheckHook` to run tests with `python setup.py test`.
|
||||||
- `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A
|
- `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A
|
||||||
`venv` is created if it does not yet exist.
|
`venv` is created if it does not yet exist. `postVenvCreation` can be used to
|
||||||
|
to run commands only after venv is first created.
|
||||||
- `wheelUnpackHook` to move a wheel to the correct folder so it can be installed
|
- `wheelUnpackHook` to move a wheel to the correct folder so it can be installed
|
||||||
with the `pipInstallHook`.
|
with the `pipInstallHook`.
|
||||||
|
|
||||||
|
@ -1291,10 +1292,17 @@ in pkgs.mkShell rec {
|
||||||
zlib
|
zlib
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Run this command, only after creating the virtual environment
|
||||||
|
postVenvCreation = ''
|
||||||
|
unset SOURCE_DATE_EPOCH
|
||||||
|
pip install -r requirements.txt
|
||||||
|
'';
|
||||||
|
|
||||||
# Now we can execute any commands within the virtual environment.
|
# Now we can execute any commands within the virtual environment.
|
||||||
# This is optional and can be left out to run pip manually.
|
# This is optional and can be left out to run pip manually.
|
||||||
postShellHook = ''
|
postShellHook = ''
|
||||||
pip install -r requirements.txt
|
# allow pip to install wheels
|
||||||
|
unset SOURCE_DATE_EPOCH
|
||||||
'';
|
'';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,12 +4,14 @@ venvShellHook() {
|
||||||
|
|
||||||
if [ -d "${venvDir}" ]; then
|
if [ -d "${venvDir}" ]; then
|
||||||
echo "Skipping venv creation, '${venvDir}' already exists"
|
echo "Skipping venv creation, '${venvDir}' already exists"
|
||||||
|
source "${venvDir}/bin/activate"
|
||||||
else
|
else
|
||||||
echo "Creating new venv environment in path: '${venvDir}'"
|
echo "Creating new venv environment in path: '${venvDir}'"
|
||||||
@pythonInterpreter@ -m venv "${venvDir}"
|
@pythonInterpreter@ -m venv "${venvDir}"
|
||||||
fi
|
|
||||||
|
|
||||||
source "${venvDir}/bin/activate"
|
source "${venvDir}/bin/activate"
|
||||||
|
runHook postVenvCreation
|
||||||
|
fi
|
||||||
|
|
||||||
runHook postShellHook
|
runHook postShellHook
|
||||||
echo "Finished executing venvShellHook"
|
echo "Finished executing venvShellHook"
|
||||||
|
|
Loading…
Reference in New Issue