Snažím se opice patch Python balíček před použitím conda pack
k balíčku se všechny balíčky pro nasazení.
Skript nastaví conda
:
conda install -y --channel conda-forge conda-pack
conda create -y --name venv python=3.7
conda install -y --name venv --file requirements.txt
Pak to opice záplaty knihovna:
sed --in-place \
's/CFUNCTYPE(c_int)(lambda: None)/# CCCFUNCTYPE(c_int)(lambda: None)/g' \
/opt/conda/envs/venv/lib/python3.7/ctypes/__init__.py
Pak to balíčky všechno pro nasazení:
conda pack --name venv --output "$BUILD_DIR/runtime.tar.gz"
Tak divná věc je, že když jsem zkopírujte soubor přímo do sestavení složky:
cp /opt/conda/envs/venv/lib/python3.7/ctypes/__init__.py "$BUILD_DIR"
Opice-oprava souboru je tam.
Nicméně, když jsem extrakt $BUILD_DIR/runtime.tar.gz
soubor je ve své původní podobě.
Další podivné chování je, že když jsem ručně spustit tyto kroky, opice oprava souboru je v $BUILD_DIR/runtime.tar.gz
.
Tam je docela dost kontejnery kolem, tak jsem si myslel, že možná conda
je pomocí některé zachycené archiv, takže místo toho, jsem se snažil přidat do skriptu:
conda clean --tarballs
Ale to stále problém nevyřešila.
Také jsem se snažil používat conda pack
's explicitní cestu volba, ale taky to nefungovalo:
conda pack --prefix /opt/conda/envs/venv --output "$BUILD_DIR/runtime.explicit.tar.gz"
Dělá conda pack
vytáhnout soubory z jiného umístění stranou od: /opt/conda/envs/venv/lib/python3.7/site-packages
To nevysvětluje, proč věci dělat ručně, by to fungovalo, ale možná to bude místo mě do nového rocku se podívat pod.
Děkuji za váš čas
1