Access main package from other package

18,599

You cannot import the main package. Any shared code should go in a separate package, which can be imported by main (and other packages).

Share:
18,599
Jan Wytze
Author by

Jan Wytze

Updated on June 15, 2022

Comments

  • Jan Wytze
    Jan Wytze almost 2 years

    I want to access the main package from another package, but this is impossible because the main file isn't in a directory. I already tried putting the main file in a directory, but when I try to import it I get this error:
    import "../main" is a program, not an importable package

    The reason that I want this because I have a tcp server and a webserver that work together. The webserver can get the tcp server via the main package and the tcp server can get the webserver via the main package.

    I already got it working with the webserver and tcpserver reading from each other(without the main package in the middle), but I want to keep some parts of the application at one place.

    Is the the thing I want possible(Via the main package)? Or is it just stupid.

  • Elliott Beach
    Elliott Beach over 6 years
  • TheRealFakeNews
    TheRealFakeNews about 3 years
    @Adrian What if you have something you need to initialize in main, such as a logger (pkg.go.dev/go.uber.org/zap#example-package-Presets)? You cannot have that in a utility package, for example, because you can't run main().
  • Adrian
    Adrian over 2 years
    Then main should pass it to the functions/methods it calls.