2
respostas

Problemas com packages próprios (Imports)

Boa noite pessoal, tudo bem ? Estou com problemas ao criar um package no go onde, ao usar a estrutura no src "\go\src\github.com\YuriBertoldi\ContaCorrente" ao realizar o import e executar da a mensagem:

main.go:6:2: no required module provides package github.com/YuriBertoldi/ContaCorrente/Models/modelConta; to add it:
        go get github.com/YuriBertoldi/ContaCorrente/Models/modelConta

Como se fosse um package externo que preciso realizar o get dele. E caso altero a estrutura da pasta removendo o github.com fincando com essa estrutura do src "\go\src\teste\YuriBertoldi\ContaCorrente" apresenta a mensagem:

main.go:6:2: package teste/YuriBertoldi/ContaCorrente/Models/modelConta is not in GOROOT (c:\go\src\teste\YuriBertoldi\ContaCorrente\Models\modelConta)

Obs: Realizei a criação go go.mod e ele está da seguinte maneira:

module teste/YuriBertoldi/ContaCorrente

go 1.20

Porém não o go.mod não resolveu em nenhuma das duas estruturas. Minhas váriaveis de ambiente estão:

set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\DEVS\AppData\Local\go-build
set GOENV=C:\Users\DEVS\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\DEVS\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\DEVS\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=c:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.20.3
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=C:\Users\DEVS\go\src\teste\YuriBertoldi\ContaCorrente\go.mod
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=C:\TMP\go-build194474720=/tmp/go-build -gno-record-gcc-switches

Estou desenvolvendo dentro da pasta src do GOPATH porém já tentei colocar dentro do GOROOT e apresenta o mesmo erro. Alguém sabe o que possa estar ocorrendo ?

Desde já agradeço.

2 respostas

Alguém?

Olá Yuri, tudo bem?

Pelo que entendi, você está tendo problemas ao importar um pacote próprio no Go. A mensagem de erro indica que o pacote não está sendo encontrado e sugere que você execute o comando go get para adicioná-lo.

No entanto, parece que você já criou um arquivo go.mod na pasta do seu projeto, o que indica que você está usando o Go Modules para gerenciar as dependências do seu projeto. Nesse caso, o comando go get não é necessário.

Uma possível solução para o seu problema é verificar se o seu pacote está dentro do diretório correto. No seu caso, parece que você está usando a estrutura github.com/YuriBertoldi/ContaCorrente, mas o Go está procurando o pacote em github.com/YuriBertoldi/ContaCorrente/Models/modelConta. Verifique se você está importando corretamente o pacote no seu código.

Além disso, certifique-se de que o seu projeto está dentro do diretório correto do GOPATH. Você mencionou que já tentou colocar o projeto tanto dentro do GOPATH quanto do GOROOT, mas nenhum dos dois funcionou. É importante destacar que o projeto deve estar dentro do GOPATH e não do GOROOT. O GOPATH é o diretório onde o Go procura por pacotes e projetos, enquanto o GOROOT é o diretório onde o Go está instalado.

Se você ainda estiver enfrentando problemas, sugiro que você compartilhe mais detalhes sobre a estrutura do seu projeto, incluindo os arquivos e pastas envolvidos, para que eu possa te ajudar de forma mais precisa.

Espero ter ajudado e bons estudos!