Вот сообщение об ошибке:
% go get
can't load package: package .: no buildable Go source files in /Users/7yan00
% echo $GOPATH
/Users/7yan00/Golang
Как вы устраните эту ошибку?
Вот сообщение об ошибке:
% go get
can't load package: package .: no buildable Go source files in /Users/7yan00
% echo $GOPATH
/Users/7yan00/Golang
Как вы устраните эту ошибку?
Убедитесь, что вы используете эту команду в исходной папке проекта проекта (например, /Users/7yan00/Golang/src/myProject
).
Одна альтернатива (похожа на эту ошибку) заключается в использовании опции -d
(см. go get
command)
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/...
Вы должны проверить $GOPATH
. Если в имени пакета есть пустой каталог, go get
не загружает пакет из репозитория.
Например, если я хочу получить пакет github.com/googollee/go-socket.io
из репозитория github, и в $GOPATH
уже есть пустой каталог github.com/googollee/go-socket.io
, go get
не загружает пакет, а затем жалуется, что в каталоге нет готового исходного файла Go. Удалите любой пустой каталог в первую очередь.
Другая возможная причина для сообщения:
не может загрузить пакет:....: нет встроенных исходных файлов Go
Это когда скомпилированные исходные файлы имеют:
// +build ignore
В этом случае файлы игнорируются и не могут быть созданы в соответствии с запросом. Это поведение задокументировано на https://golang.org/pkg/go/build/
Чтобы решить эту проблему для моей ситуации:
Мне нужно было указать более конкретный подпакет для установки.
Неправильно:
go get github.com/garyburd/redigo
Правильно:
go get github.com/garyburd/redigo/redis
Если вам нужны все пакеты в этом репозитории, используйте ...
, чтобы обозначить это, например:
go get code.google.com/p/go.text/...
У меня был этот точный код ошибки, и после проверки мой репозиторий обнаружил, что не было никаких файлов go, а фактически просто больше каталогов. Так что для меня это была скорее красная сельдь, чем ошибка.
Я бы порекомендовал сделать
иди env
и убедившись, что все в порядке, проверьте переменные среды в вашей ОС и убедитесь, что ваша оболочка (bash или w/e) не скомпрометировала ее с помощью чего-то вроде файла .bash_profile или .bashrc. удачи.