Невозможно импортировать пакет, расположенный в том же каталоге - PullRequest
0 голосов
/ 09 ноября 2018

Я хочу импортировать в текущий файл или пакет другой файл , расположенный в том же проекте в каталоге. Я делаю это:

import (

// "./dir1"
  "/Users/my_name/my_project/dir1"

)

Ни один из них не работает

  1) Cloning into '/Users/my_name/go/src/github.com/github_username/github_project'...
  fatal: could not read Username for 'https://github.com': terminal prompts disabled


  2) package /Users/my_name/my_project/dir1: unrecognized import path "/Users/my_name/my_project/dir1" (import path does not begin with hostname)

Как импортировать каталог, расположенный в текущем проекте?

Ответы [ 3 ]

0 голосов
/ 09 ноября 2018

Переименуйте dir1 в то же имя, что и пакет в этом каталоге, затем вы можете импортировать его с помощью:

import "./package1"

Однако делать это не рекомендуется, вместо этого используйте GOPATH . Если вы действительно не хотите использовать GOPATH, вы можете использовать Модули в Go 1.11 (но это все еще экспериментально).

0 голосов
/ 09 ноября 2018

Убедитесь, что ваш проект находится в папке GOPATH go / src (рекомендуемый способ). Затем импортируйте как это

package logic

import (
    "project_name/folder_name"
)
0 голосов
/ 09 ноября 2018

Пути импорта не являются прямыми. Они относятся к ГОПАТЫ (определяется путем echo $GOPATH).

Это означает, что Go очень самоуверен относительно того, где вы храните свой код. Так что вам придется переместить свой код на $GOPATH/src/my_name/my_project. Если вы размещаете свой код на чем-то вроде github, переместите его на $GOPATH/src/github.com/my_github_name/my_project.

Затем, когда вы импортируете свои подпакеты:

import "github.com/my_github_name/my_project"

Обратите внимание, что это не абсолютный путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...