conda build: ¿Cómo construir “pkg” como “lib.pkg”?
En mi computadora tengo lib
en PYTHONPATH
:
lib
|__pkgA
|__pkgB
Cada paquete tiene su propio repositorio de git.
Estoy tratando de construir un paquete conda desde pkgA
utilizando git como fuente (a través de conda-build
y meta.yaml
), pero quiero que el paquete se instale como lib.pkgA
y NO como pkgA
.
¿Cómo puedo lograr esto? Lo siguiente no reconoce lib
como un módulo:
meta.yaml
package:
name: lib.pkgA
version: {{ GIT_DESCRIBETAG }}
source:
git_url: git@github.com:lib/pkgA.git
build:
noarch: python
requirements:
build:
- python >=3.6
run:
- python >=3.6
test:
imports:
- lib.pkgA
about:
home: https://github.com/lib/pkgA
P.S. – Intenté crear un metapaquete implícito de la siguiente manera:
package: lib
...
outputs:
- name: pkgA
pero parecía estar buscando el módulo lib
de todos modos y falló. Debería haber una manera de evitar la estructura de directorios lib/pkgA/lib/pkgA
poco elegante…
Gracias.
davy.ai
Para lograr la instalación del paquete deseado como
lib.pkgA
en lugar depkgA
, puedes agregar las siguientes líneas a tu archivometa.yaml
:Este script renombra la carpeta
pkgA
alib.pkgA
antes de que comience el proceso de compilación, cambiando efectivamente la ubicación de instalación del paquete.Tu archivo
meta.yaml
actualizado luciría así:Con esta modificación, al ejecutar
conda build .
desde la carpeta que contienemeta.yaml
, se creará un paquetelib.pkgA
que se puede instalar conconda install -c <channel> lib.pkgA
.¡Espero que esto te ayude! Hazme saber si tienes alguna otra pregunta.