Вот мой предыдущий пост Golang template.ParseFiles не является ошибкой каталога. У меня есть фрагмент:
root_path, err := osext.Executable()
if err != nil {
return err
}
templates_path := root_path + "/app/views/mailtemplates/" + "feedback"
text_path := templates_path + ".txt"
textTmpl, err := template.ParseFiles(text_path)
if err != nil {
return err
}
и следующая ошибка:
open /home/cnaize/gocode/bin/advorts/app/views/mailtemplates/feedback.txt: not a directory
Если я жестко запрограммирую:
templates_path := "/home/cnaize/" + "feedback"
все нормально. В чем проблема? Я пытался удалить свой бин, но это не помогло.
ОТРЕДАКТИРОВАНО: Мой env variables
:
export GOROOT="/usr/local/go"
export GOPATH=$HOME/gocode
export PATH=$PATH:$GOROOT/bin
export PATH="$PATH:$GOPATH/bin"
и моя переменная PATH
:
PATH=/home/cnaize/.rvm/gems/ruby-2.1.0/bin:/home/cnaize/.rvm/gems/ruby-2.1.0@global/bin:/home/cnaize/.rvm/rubies/ruby-2.1.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/cnaize/.rvm/bin:/usr/local/go/bin:/home/cnaize/gocode/bin
/home/cnaize/gocode/bin/advorts/app/views/mailtemplates
являются обычными каталогами? (нет проблем с разрешением, нет символической ссылки?) - person VonC   schedule 15.07.2014/home/cnaize/gocode/feedback.xxx
? Если да, то/home/cnaize/gocode/bin/feedback.xxx
. Если да, ... и так далее, чтобы определить, какая подпапка вызывает проблему. - person VonC   schedule 15.07.2014advorts
. и интересная вещь: когда я проверяю наличие файла, он возвращаетtrue
. может быть что-то случилось, когда я переносил проект? где может быть проблема? - person cnaize   schedule 16.07.2014/home/cnaize/gocode/bin/
работает, а/home/cnaize/gocode/bin/advorts/xxx
нет? - person VonC   schedule 16.07.2014advorts
, но это тоже не работает - person cnaize   schedule 16.07.2014GOPATH
?/home/cnaize/gocode
? - person VonC   schedule 16.07.2014PATH
? как удалить мой путьDropbox
из переменнойPATH
? - person cnaize   schedule 16.07.2014export PATH=...
(весь путь минус часть Dropbox) будет работать. Но я не думаю, что это проблема. Если вы сделаетеgo run
в папке проекта src/home/cnaize/gocode/src/advorts/
(/src/
не/bin/
), это сработает? - person VonC   schedule 16.07.2014/gocode/src/advorts$ go run advorts
=›go run: no go files listed
- person cnaize   schedule 16.07.2014go
файл в пакетеmain
с функциейmain
). Это отличается от установки go, при которой исполняемый файл копируется в/home/cnaize/gocode/bin/advorts
, где файлы ресурсов могут отсутствовать. - person VonC   schedule 16.07.2014/gocode/src/advorts$ go run
=›go run: no go files listed
. мойgo version
этоgo version go1.3 linux/amd64
. как ресурсы справились с бинарником? на этапе компиляции? Я используюRevel
, он генерирует мой файлmain
, а этотmain.go
находится в путиapp/tmp/
- person cnaize   schedule 16.07.2014app/tmp
пути? - person VonC   schedule 16.07.2014/gocode/src/advorts/app/tmp$ go run
=›go run: no go files listed
- person cnaize   schedule 16.07.2014go run
должен работать? Я только что создал простой файлmain.go
в~/gocode/src/test
иgo run
=>go run: no go files listed
- person cnaize   schedule 16.07.2014go run main.go
? Я думаю, чтоgo build
(без указания любого файла go должен работать) - person VonC   schedule 16.07.2014go run main.go
работает, аgo build
создает двоичный файл, который я могу запустить. что мне делать дальше? Я попытался запуститьgo build
внутри своего/gocode/src/advorts/app/tmp
, и он создал для меня файлtmp
. Я думаю, это не то, что мне нужно - person cnaize   schedule 16.07.2014not a directory
при запуске этого двоичного файла? - person VonC   schedule 16.07.2014tmp
с ошибкойERROR 2014/07/16 15:34:34 revel.go:256: GOPATH environment variable is not set. Please refer to http://golang.org/doc/code.html to configure your Go environment.
, не знаю почему - person cnaize   schedule 16.07.2014app/lib/mytools.go
, но я вызываю его из своегоcontroller
- person cnaize   schedule 16.07.2014