Acabo de actualizar a la nueva versión de Go - Go versión 1.16.2 Linux/amd64 y recibo un error cuando construyo un Hello, World! ejemplo :
go: el archivo go.mod no se encuentra en el directorio actual ni en ningún directorio principal; ver 'ir a los módulos de ayuda'
Incluso cuando sigo la solución de esa publicación , no funciona. Configuro estas variables y luego construyo de nuevo:
GO111MODULE=on GOPROXY=https://proxy.golang.org,directY el mismo problema por desgracia.
Sí, solo siga el tutorial y para mí eso fue hacer go mod init test3 para crear un módulo. Nadie más ha estado actualizando desde la versión anterior o todos los demás simplemente lo entendieron correctamente, supongo.
Cambia esto:
go env -w GO111MODULE=auto
a esto:
go env -w GO111MODULE=off
Estaba tratando de ejecutar el comando go build en mi máquina local de Windows y me encontré con el go: go.mod file not found in current directory or any parent directory; see 'go help modules' .
Así es como fui a resolverlo:
$ pwd y obtuve una respuesta como /c/projects/go-projects/go-server$ go mod init c/projects/go-projects/go-server Esto eliminó totalmente el error y pude ejecutar el servidor con el comando $ ./go-web
PD : es importante tener en cuenta que estaba ejecutando comandos de Linux en mi máquina usando el terminal Git Bash Linux para Windows, viene por defecto en Windows con la instalación de git para Windows.
Esto funcionó para mí:
FROM golang:alpine WORKDIR /go/src/app ADD . . RUN go mod init RUN go build -o /helloworld EXPOSE 6111 CMD ["./helloworld"]Go crea paquetes en modo compatible con módulos de forma predeterminada a partir de 1.16. Ver aquí
Navegue a la carpeta que contiene el archivo Go y ejecute:
go mod init <modulename> .
Aquí se crea un archivo go.mod y este directorio se convertirá en la raíz del módulo recién creado. Vea aquí para leer sobre los módulos Go.
Desde el directorio de su proyecto, agregue esta línea de código en su archivo Dockerfile si está creando una imagen de Docker:
RUN go mod init
O esto en su directorio:
go mod init
Tuve el mismo error cuando construí una imagen de Docker:
docker build . -t ms-c3alert:1.0.6Detalle del error:
Step 11/21 : ENV GO111MODULE=on ---> Using cache ---> 1f1728be0f4a Step 12/21 : RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o c3alert . ---> Running in ee4b3d33d1d2 go: go.mod file not found in current directory or any parent directory; see 'go help modules' The command '/bin/sh -c CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o c3alert .' returned a non-zero code: 1Lo resolví agregando las siguientes líneas en mi Dockerfile. Anteriormente, requería tener un proyecto Go en módulos, según la guía en publicaciones anteriores:
COPY go.mod . COPY go.sum . RUN go mod downloadPrimero asegúrese de que su valor GO111MODULE esté configurado en "automático". Puedes consultarlo desde:
go envSi no está configurado en "automático", ejecute:
go env -w GO111MODULE=autoVaya a su directorio de trabajo en la terminal y ejecute:
go mod init go mod tidytú eres bueno para irte.
Acabo de empezar a aprender Go.
Y he encontrado esto si construyes tu programa como se muestra a continuación:
go build "name of go app with path" go build .\Main.goRecientemente descubrí que el "módulo no requerido" es el mensaje de error que recibe cuando intenta ejecutar/crear un archivo Go que no existe o tiene un error tipográfico.
Mi estudiante había llamado a su archivo 'filename.Go'. La 'G' mayúscula lo convirtió en un archivo de Go no válido, pero Visual Studio Code aún lo reconoció como un archivo de Go, por lo que llevó mucho tiempo descubrirlo.
Pasé mucho tiempo resolviendo esto, tratando de entender los módulos y la relación con las carpetas, cuando el problema era un error tipográfico.
Un mensaje de error confuso cuando en realidad era el archivo Go y no el archivo .mod el que "faltaba".
No instale Go en su carpeta de inicio. Por ejemplo, ~/go , porque esta carpeta será utilizada por To en la instalación de otras bibliotecas de terceros.
descargue y descomprima el archivo ZIP de instalación de Go en otro lugar, por ejemplo, /workspace/tools/go y configure su PATH=/workspace/tools/go/bin
Eso es todo. No hay necesidad de hacer go mod init .
Intenta ejecutar los siguientes comandos
Intenta hacer esto:
go mod init example.com/m go mod tidyEsto creará los archivos go.mod y go.sum .