Q: Получение ошибки сборки Недопустимый путь импорта

Я застрял при запуске приложения BeeGO с помощью «bee run», он говорит введите описание изображения здесь

Дело в том, что я уже правильно настроил свой путь от GOPATH к D:/Web Dev/GO/BeeGO/test-project/, а также путь к маршрутизаторам, и я пытался вручную создать файл, но он не создает файл .exe.

Кто-нибудь знает, как это исправить?

Я использую Windows 8.1 Pro (64-разрядная версия).

Спасибо


person Rene Padillo    schedule 12.12.2014    source источник
comment
Можете ли вы показать нам свой источник, который вызывает это? А попробуйте убрать пробел в GOPATH?   -  person JimB    schedule 13.12.2014
comment
конечно, вот код да, также проверил GOPATH, пробелов нет. Проблема в том, что он указывает правильный путь, но не уверен, почему он говорит invalid import path   -  person Rene Padillo    schedule 13.12.2014


Ответы (4)


GO ожидает структуру каталогов в $GOPATH следующим образом, как описано в организации кода:

$GOPATH/src  <--- where your source code goes
       /pkg
       /bin

Вместо того, чтобы размещать исходные файлы непосредственно в $GOPATH (D:/Web Dev/GO/BeeGO/test-project/ в вашем случае), вы хотите переместить свой код в $GOPATH/src.

D:/Web Dev/GO/BeeGO/test-project/src/main.go
D:/Web Dev/GO/BeeGO/test-project/src/quickstart/routers/routers.go
D:/Web Dev/GO/BeeGO/test-project/src/quickstart/controllers/controllers.go

путь импорта всегда должен начинаться с $GOPATH/src. routers.go всегда можно импортировать как import "quickstart/routers", а controllers.go можно импортировать как import "quickstart/controllers".

person Gaku Ueda    schedule 13.12.2014

Это не то, как вы импортируете пакет.

Путь импорта указан относительно $GOPATH/src. использовать:

import "quickstart/routers"
person JimB    schedule 12.12.2014
comment
спасибо, но на самом деле это должно быть "../quickstart/routers", если я не добавлю ../, GO добавит неправильный путь src. - person Rene Padillo; 13.12.2014
comment
Нет, не используйте относительные пути. Ваш код должен быть в папке $GOPATH/src. - person JimB; 13.12.2014

Наконец-то исправил ошибку из фреймворка,

Что я сделал:

в main.go импортировать из "D:/Web Dev/GO/BeeGO/test-project/quickstart/routers"

Я изменил его на _"../quickstart/routers", обязательно включите _, это означает импортировать библиотеку, даже если она не используется,

Затем в routers/router.go я изменил путь импорта "D:/Web Dev/GO/BeeGO/test-project/quickstart/controllers" на "../controllers"

Похоже, что BeeGO неправильно сгенерировал шаблон, что привело к сбою сборки.

person Rene Padillo    schedule 13.12.2014
comment
Нет, не используйте относительные пути. Ваш код должен находиться в файле $GOPATH/src. Это только вызовет у вас больше проблем, подобных этой. golang.org/doc/code.html - person JimB; 13.12.2014

Другая возможность этой ошибки — когда вы копируете и вставляете код из Интернета и

import "quickstart/routers"

стал

import "quickstart/routers "

из-за ошибок в некоторых CMS/системах блогов (обратите внимание на пробел в конце перед закрывающей цитатой...).

person Stefan Steiger    schedule 14.10.2015