GO语言 环境搭建与git指令的使用

#Go语言中文网:https://studygolang.com/

Go语言简介:

    说起爬虫,都会想到Python中的urllib2、Scrapy、selenium等包。但当涉及到大量的网址需要爬取时,对单台机器的爬虫速度要求很高。Python中的多线程或者高并发爬虫实现起来较为麻烦,这时候原生并发的Go语言就能派上很大的用场。Go语言本身支持并发编程,相比起Python等解释型语言,它的编译速度很快,跟C++媲美。它也带有net/http包,支持爬虫功能,自带有database/sql包,支持数据库连接。

    而Go在爬虫中,最突出的优点就是其方便的并行性,这让爬虫能够高效地工作,减轻工程难度。

Go语言Ubuntu下安装:

平常来说以下命令可以安装Go:

ubuntu@ubuntu:~$ apt-get install golang

但是后来在实际应用中,发现这样安装下来的Go有诸多bug,还是去官网把go的tar包下载下来,再解压

下载地址:https://www.golangtc.com/download  选择版本:go1.9.2.linux-amd64.tar.gz

下载解压后移动文件夹到自己喜欢的文件夹下,然后配置 /etc/profile 配置自己的GOPATH和GOROOT

输入 go version,有显示则配置成功

git指令的使用

在实际进行Go语言程序的编写时,借鉴别人代码的时候,会发现别人的代码中有许多github或者golang的包,例如first.go程序中包含下列import

import("database/sql"

            _"github.com/jackx/pgx/stdlib"

)

(golang.com是被墙的,之后的文档会说明如何import网络不可连的包)

这时如果我们只安装了go语言,在go run first.go时则会报错:

go: missing Git command. See http://golang.org/s/gogetcmd

这个的解决方法,只需要 apt-get install git

然后我们再来run一下这个程序,又会报错,应该是无法在本地找到这个包。这是因为在这里必须要将github上面的包先下载下来,再来import

下载的命令为:

go get github.com/lib/pq

但是首先,我们要确保我们的主机可以和github的服务器连接上,如果直接运行上面的命令,会提示:

Permission denied (publickey).

这是因为主机的公钥没有提交给github.com,解决方法为:

1. 配置conf文件

ubuntu@ubuntu:~$ vim ~/.ssh/config

添加:

    Host github.com

    HostName github.com

    Port 22

    IdentityFile ~/.ssh/id_rsa.pub

2.在github.com上登陆 

3. 点开头像旁边的箭头,点入setting

4. 点击SSH and GPG keys 

5. 在SSH keys旁边点击 New SSH key

6. 命令行输入 vim ~/.ssh/id_rsa.pub (如果没有公钥,则输入ssh-keygen -t rsa 生成公钥,如果没有ssh包,则apt-get install openssh-server), 将文件中的字符全部copy 

7. 将copy的公钥粘贴到github.com的SSH key设置中,点击Add。

8. 命令行输入

ubuntu@ubuntu:~$ eval "$(ssh-agent -s)"

ubuntu@ubuntu:~$ ssh-add

9. 尝试 ssh -T [email protected],如果配置正确,会出现

    Hi Username!You've successfully authenticated, but GitHub does not provide shell access.

10. 然后使用go get github.com/lib/pq, 如果报错类似:

    Username for 'https://github.com': terminal prompts disabled

    那么使用命令

    env GIT_TERMINAL_PROMPT=1 go get github.com/lib/pq

    然后就可以在Go文件中import github.com的包了。

猜你喜欢

转载自blog.csdn.net/SeanBollock1/article/details/79533415
今日推荐