It does help me. Thanks
-- rob drrob...@fastmail.com On Wed, Apr 7, 2021, at 10:24 AM, wagner riffel wrote: > On Tue, 6 Apr 2021 19:39:00 -0400 > rob <drrob...@fastmail.com> wrote: > > > > This example is on Win10 using go 1.16.3 > > > > Now I've created a directory tree outside of ~/go/src. I'm using ~ > > to mean %userprofile%, as this is win10 > > > > ~/gcode/rpng/rpng.go > > > > ~/gcode/tokenize/tokenize.go > > > > ~/gcode/hpcalc2/hpcalc2.go > > > > And I updated my import statement to be "gcode/hpcalc2", etc. > > > > Now I can use > > > > go run gcode/rpng/rpng.go > > > > And I set GOBIN=c:\Users\rob\gcode > > > > go install gcode/rpng/rpng.go > > > > and it installs to GOBIN. > > > > At least it's working for me mostly the way it was before. I just > > had to abandon my ~/go directory > > > > Thanks for answering > > > > Rob > > > > Hi Rob, it's good that you got it working, but I feel you're struggling > with modules inferred from your past emails due a confusion between a > module namespace and the file system, your package import paths and go > commands are relative to a *module* and not a directory, your current > module namespace is detected similarly as a git repository is, that is, > traverse current working directory up until a go.mod is found (or .git > for git), and then if a module is found, you import packages or use the > go commands in the format of *module_name*/folder/..., not file system > paths, what go cares as a namespace is the module name, not > absolute/relative file system paths. > > For example, suppose our current working directory is "~/gcode/" and it > has a go.mod named¹ "foo", note that the folder is named gcode but the > module is "foo", you would install the "rpng" package inside this > module namespace "foo" with: > $ go install foo/rpng > > you can refer file path relatives alike as well: > $ go install ./rpng # OK > $ go install rpng # invalid, would fail with the same not found message > > you can think as dot expanding to "foo", not the file system gcode > folder, to make clear that it's not about file system paths, changing > our current working directory to "tokenize", we still can mention "rpng" > relative to the module, not the file system: > $ cd ~/gcode/tokenize > $ go install foo/rpng > $ go install ../rpng # valid as well > > I'm not sure if this helps you or causes even more confusions, if so > sorry. > > BR. > > --wagner > > [1] the module name is usually a domain, but not necessarily, refer to > https://pkg.go.dev/golang.org/x/mod/module#CheckPath for detailed > description. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/47d67ccf-1d85-4bb2-9555-cf7ee4a8f9b0%40www.fastmail.com.