패키지를로드 할 수 없습니다 : package. : 빌드 가능한 Go 소스 파일이 없습니다.


81

다음은 오류 메시지입니다.

% go get     
can't load package: package .: no buildable Go source files in /Users/7yan00

% echo $GOPATH     
/Users/7yan00/Golang

그 오류를 어떻게 해결 하시겠습니까?

답변:


52

Go 프로젝트 소스 폴더 (예 :)에서 해당 명령을 사용하고 있는지 확인하십시오 /Users/7yan00/Golang/src/myProject.

한 가지 대안 ( 이 버그와 유사)-d옵션 을 사용하는 것입니다 ( go getcommand 참조 ).

go get -d

-d플래그에 지시하여 패키지를 다운로드 한 후 정류장에 도착; 즉, 패키지를 설치하지 않도록 지시합니다.

귀하의 경우에 도움이되는지 확인하십시오.


그러나 더 일반적 으로이 스레드에 설명 대로 :

go get 리포지토리가 아니라 패키지 용입니다.

특정 패키지를 원한다면, 말을 go.text/encoding한 후 사용,

go get code.google.com/p/go.text/encoding

해당 리포지토리의 모든 패키지를 원하면을 사용 ...하여 다음을 표시하십시오.

go get code.google.com/p/go.text/...

@ 7yan00 명령을 실행할 때 어떤 폴더에 있었습니까? 어떤 버전의 Go를 사용하고 있습니까? 어떤 OS에서? "움직이지 않음"이란 go get 명령이 중단되고 멈춘 것처럼 보이며 돌아 오지 않는다는 의미입니까?
VonC

2
나는 여전히이 문제를 겪고 있습니다. 나는 go get어떤 원격 패키지에도 보이지 않습니다 . 나는 항상 얻는다 no buildable Go source files in .
Hourback은

32

$GOPATH디렉토리를 확인해야합니다 . 패키지 이름의 빈 디렉토리가있는 경우go get 경우 저장소에서 패키지를 다운로드하지 않습니다.

내가 얻고 싶은 경우에 예를 들어, github.com/googollee/go-socket.io그것의 GitHub의 저장소에서 패키지를, 그리고 빈 디렉토리가 이미 존재 github.com/googollee/go-socket.io$GOPATH, go get 하지 않는 패키지를 다운로드 한 다음 디렉토리에는 빌드 할 이동 소스 파일이 없다고 불평한다. 먼저 빈 디렉토리를 삭제하십시오.


1
감사합니다. /usr/local/go/src/github.com/GIT_PROJECT_NAME을 제거해야했습니다
Baroudi Safwen

13

메시지에 대한 또 다른 가능한 이유 :

패키지를로드 할 수 없습니다 : .... : 빌드 가능한 Go 소스 파일이 없습니다.

컴파일되는 소스 파일이 다음과 같은 경우입니다.

// +build ignore

이 경우 파일이 무시되고 요청에 따라 빌드 할 수 없습니다.이 동작은 https://golang.org/pkg/go/build/에 문서화되어 있습니다.


1
이 경우가 그랬습니다. 프로젝트는 빌드 태그를 사용하여 빌드 한 바이너리의 기능을 포함하거나 제외하고 패키지의 모든 파일에 // +build myfeature태그가 있습니다. 해결 방법은 패키지 선언 (예 :) 만 포함하는 dummy.go라는 패키지에 파일을 추가하는 것 package myfeature입니다.
mmindenhall

1
힌트를 주셔서 감사합니다. 제 경우에는 // +build !windows
mx1up

마찬가지로, 최근 // +build go1.9에 go1.8로 빌드하려고 할 때이 오류를 일으키는 오류가 발생했습니다
thurt

1
이것은 이동이 것을 더 증거 정말 그것의 오류 메시지에서 더 많은 설명과 구체적으로 할 필요가있다. 현재는 빠른 개발에 매우 ​​도움이되지 않습니다.
J. Scott Elblein

6

내 상황을 해결하려면 다음을 수행하십시오.

설치할 더 구체적인 하위 패키지를 지정해야했습니다.

잘못된:

go get github.com/garyburd/redigo

옳은:

go get github.com/garyburd/redigo/redis

3

해당 저장소의 모든 패키지를 원하면 ...다음과 같이이를 표시하는 데 사용하십시오 .

go get code.google.com/p/go.text/...

0

이 정확한 오류 코드가 있었고 저장소를 확인한 후 go 파일이 없지만 실제로는 더 많은 디렉토리가 있음을 발견했습니다. 그래서 그것은 나에게 오류 라기보다는 붉은 청어에 가깝습니다.

나는하는 것이 좋습니다

환경 이동

모든 것이 정상인지 확인하고 OS에서 환경 변수를 확인하고 .bash_profile 또는 .bashrc 파일과 같은 것을 통해 쉘 (bash 또는 w / e)이이를 손상시키지 않는지 확인하십시오. 행운을 빕니다.


0

모드에서 패키지를 다운로드 할 수 있습니다.

go get -v all

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.