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