Все, я надеюсь, что этот вопрос относится к этому.
Я следую учебному пособию по Blockgeeks, пытаясь настроить свою среду для разработки блокчейна Ethereum.Я в основном добрался до последнего шага - установки роя, но я получаю сообщение об ошибке, которое, похоже, связано со структурой папки на github.Как мне это исправить?
Полезная информация:
-OS: Windows 10, запуск этого проекта в Cygwin с установленными надлежащими зависимостями gcc
-Go версия: 1.11.4
Я пытался найти решение уже несколько дней, но ничего, что я нашел, не сработало.Любая помощь приветствуется.
В основном все говорят, что эти шаги работают для них: https://swarm -guide.readthedocs.io / en / latest / installation.html # generic-linux
Может быть, это что-то с cygwin?
Когда я пытаюсь выполнить эту команду: $ go install -v ./cmd/swarm
Я ожидаю, что она будет установлена правильно, но я получаю эту ошибку:
unexpected directory layout:
import path: github.com/naoina/toml
root: C:\cygwin64\home\di203179\go\src
dir: C:\cygwin64\home\di203179\go\src\github.com\ethereum\go-ethereum\vendor\github.com\naoina\toml
expand root: C:\cygwin64\home\di203179\go\src
expand dir: C:\cygwin64\home\di203179\go\src\github.com\ethereum\go-ethereum\vendor\github.com\naoina\toml
separator: \
Любая помощь приветствуется.
Обновление :
Я думаю, я нашел код, который выдает эту ошибку здесь: https://golang.org/src/cmd/go/internal/load/pkg.go
ИВот фрагмент:
// dirAndRoot returns the source directory and workspace root
// for the package p, guaranteeing that root is a path prefix of dir.
func dirAndRoot(p *Package) (dir, root string) {
dir = filepath.Clean(p.Dir)
root = filepath.Join(p.Root, "src")
if !str.HasFilePathPrefix(dir, root) || p.ImportPath != "command-line-arguments" && filepath.Join(root, p.ImportPath) != dir {
// Look for symlinks before reporting error.
dir = expandPath(dir)
root = expandPath(root)
}
if !str.HasFilePathPrefix(dir, root) || len(dir) <= len(root) || dir[len(root)] != filepath.Separator || p.ImportPath != "command-line-arguments" && !p.Internal.Local && filepath.Join(root, p.ImportPath) != dir {
base.Fatalf("unexpected directory layout:\n"+
" import path: %s\n"+
" root: %s\n"+
" dir: %s\n"+
" expand root: %s\n"+
" expand dir: %s\n"+
" separator: %s",
p.ImportPath,
filepath.Join(p.Root, "src"),
filepath.Clean(p.Dir),
root,
dir,
string(filepath.Separator))
}
return dir, root
}
Кажется, есть несколько проблем, связанных с путями, которые могут заставить проект Go вызвать эту ошибку.Но я чувствую, что мой путь верен, поэтому я все еще в растерянности ...
Обновление 2:
Я подтвердил, что первое выражение if изэтот фрагмент выполняется, и первые три условия второго оператора if преобразуются в false (это означает, что они не являются причиной ошибки), что означает, что последнее условие, состоящее из нескольких операторов AND, должно возвращать значение true, поскольку ошибкабросает.Все еще не могу сказать почему, хотя.Спасибо за любую помощь.