go - que - iqos philip morris
el tipo de paquete no se puede usar como el tipo de paquete vedado (4)
Estoy tratando de usar este paquete API de Golang Yelp . En algunas de sus estructuras, utiliza los tipos definidos en el paquete nulo de guregu .
Quiero declarar una estructura definida en el paquete API de Yelp, donde algunos de sus campos tienen valor
null.Float
como valor (
es decir, esta estructura, que estoy tratando de usar
).
Entonces, en mi programa, importo tanto el paquete API de Yelp como el paquete nulo de guregu e intento declarar la estructura, con ip.Lat e ip.Lat siendo float64s.
(
null.FloatFrom
Definición de
null.FloatFrom
)
:
33 locationOptions := yelp.LocationOptions{
34 ip.Zip,
35 &yelp.CoordinateOptions{
36 Latitude: null.FloatFrom(ip.Lat),
37 Longitude: null.FloatFrom(ip.Lon),
38 },
39 }
Pero cuando ejecuto el programa, me dice:
./cli.go:36: cannot use "github.com/guregu/null".FloatFrom(ip.Lat) (type
"github.com/guregu/null".Float) as type "github.com/JustinBeckwith/go-
yelp/yelp/vendor/github.com/guregu/null".Float in field value
Intenté 2 cosas:
1) No importé el paquete
null
, lo que provocó que Go se quejara de que
null
estaba indefinido.
2) También intenté importar el paquete vendored directamente, lo que provocó que Go me dijera que el
use of vendored package not allowed
.
¿Alguna idea sobre cómo solucionar este problema?
La solución aquí parece ser que la biblioteca que estoy tratando de usar necesita ser modificada para evitar que ocurra este tipo de cosas.
Las dos formas posibles de cambiar la biblioteca parecen ser
1) no proveedor en absoluto: esto funciona si la dependencia no necesita ser una versión específica.
2) distribuido, pero no exponga la biblioteca vendida al público. Cree algunas funciones de contenedor en la biblioteca para que las personas puedan crear los tipos indirectamente.
Vea esta discusión sobre la venta en reddit para obtener más ideas / razones por las cuales.
Solo tuve un problema similar.
Poniendo ambas bibliotecas en
/vendor
resuelto.
Usando
govendor get xxxx
Tuve el mismo problema. Como solución alternativa, eliminé la carpeta del proveedor del paquete asociado y moví su contenido a mi carpeta $ GOPATH.
Fuente de respuesta: https://github.com/prometheus/prometheus/issues/1720
Tuve un problema similar al usar Godep y lo resolví eliminando
/vendor
y volviendo a ejecutar
godep save ./...
- Espero que ayude.