Golang项目无法运行特定项目的解决方法

Golang项目无法运行特定项目的解决方法 你好,

我是Go语言的新手,只想作为最终用户用它来运行一个特定的项目。但遗憾的是,我失败了……

我尝试在树莓派3b上运行 GitHub - IngmarStein/mielesolar: 使用SolarEdge逆变器触发Miele SmartStart

我按照 在树莓派上安装Golang(Go)的更好方法 – E-Tinkers 的说明,以用户“pi”的身份安装了Go。

项目页面上的安装说明仍然说要使用“go get”——这个方法已经过时了。我尝试了go mod init,然后在执行go get时遇到了“无效的导入路径”错误,而使用go install时则遇到了“项目不在GOROOT中”的错误。

(也尝试过Docker,但出现了“错误的架构”错误)。

有没有人能向新手解释一下如何正确运行这个项目,以及如何在树莓派系统启动时自动启动它?谢谢!


更多关于Golang项目无法运行特定项目的解决方法的实战教程也可以访问 https://www.itying.com/category-94-b0.html

3 回复

没有人吗?抱歉再次提问,但我真的不熟悉Go语言,自己无法解决这个问题。非常感谢您的帮助。

更多关于Golang项目无法运行特定项目的解决方法的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


除了使用 go get,你是否考虑过直接克隆仓库然后执行 go buildmv ...

首先,确保你的Go环境已正确设置。在树莓派上,你可以通过以下命令检查Go版本和GOPATH:

go version
echo $GOPATH

如果GOPATH未设置,建议设置它。例如,在~/.bashrc中添加:

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

然后运行source ~/.bashrc

对于这个项目,由于它可能使用旧版Go模块结构,可以尝试以下步骤来运行:

  1. 克隆项目到本地

    cd ~
    git clone https://github.com/IngmarStein/mielesolar.git
    cd mielesolar
    
  2. 初始化Go模块(如果项目没有go.mod文件):

    go mod init github.com/IngmarStein/mielesolar
    
  3. 下载依赖并构建

    go mod tidy
    go build -o mielesolar .
    

    这将在当前目录生成可执行文件mielesolar

  4. 运行项目

    ./mielesolar
    

    如果项目需要配置文件或环境变量,请参考项目README进行设置。

如果遇到依赖错误,例如“invalid import path”,可能是模块路径问题。尝试手动修改go.mod文件中的模块名称,或使用replace指令。例如,在go.mod中添加:

module mielesolar

go 1.16

replace github.com/IngmarStein/mielesolar => ./

对于系统启动自动运行,可以使用systemd服务。创建服务文件:

sudo nano /etc/systemd/system/mielesolar.service

添加以下内容(根据你的路径调整):

[Unit]
Description=MieleSolar Service
After=network.target

[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/mielesolar
ExecStart=/home/pi/mielesolar/mielesolar
Restart=on-failure

[Install]
WantedBy=multi-user.target

然后启用并启动服务:

sudo systemctl enable mielesolar.service
sudo systemctl start mielesolar.service

如果构建时出现架构错误,确保你的Go版本支持ARMv7(树莓派3b)。使用go env GOARCH检查,输出应为arm

回到顶部