Golang中如何使用他人创建的包?
Golang中如何使用他人创建的包? 你好。我是一名具备基本 PHP/MySQL 知识的前端开发者。Go 对我来说是一个新事物。
我正在尝试使用一个由其他人创建的包。
该包的文档提到了像这样的命令:
-block-file=[FILENAME]
这些命令看起来像 Node.js 的命令。过去,我曾因为 SASS、uglify-js 等原因使用过几次 Node.js 的东西,但我现在无法完全回忆起如何使用它。涉及到这些终端命令时,对于像我这样的前端开发者来说可能相当晦涩难懂。
我尝试在互联网和 YouTube 上搜索答案,但找不到循序渐进的教程。
我的操作系统是 Windows 7。我已经在 D 盘安装了 Go。
假设我现在在桌面上。第一步是打开命令提示符吗?
更多关于Golang中如何使用他人创建的包?的实战教程也可以访问 https://www.itying.com/category-94-b0.html
感谢您帮忙检查命令。我不明白应该将哪个可执行文件放入文件夹。从哪里可以获取这个可执行文件?
更多关于Golang中如何使用他人创建的包?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
非常感谢!我刚刚成功转换了这两个文件!
在GitHub上。如自述文件中所述,在“Releases”(发布)标签页中。
谢谢。如果我没理解错的话,那些命令并不是必需的,而且很可能命令提示符也不需要。
这个包在 GoDoc 上有文档。您能告诉我,要使用它的 ConvertFile 函数,我需要做的第一步是什么吗?
是的,我忘了这一点。你需要先执行 go get github.com/maxmind/geoip2-csv-converter。
但你真的只需要转换一次那个文件,还是需要定期地通过编程方式转换文件?
如果是前者,直接使用他们从 GitHub 发布页面提供的二进制文件,在终端中运行它,并提供 README 中描述的参数即可。
这些是你可以从该仓库项目编译出的二进制文件的参数。
如果你只导入 github.com/maxmind/geoip2-csv-converter/convert 包,你就不需要关心它们。
只有当你想要使用基于该源代码创建的程序时,你才需要将这些参数与该可执行文件一起使用。
编辑并附言:除非你需要重新加载环境,否则永远不应该关闭你的终端。它应该是编程中第二常用的工具,仅次于一个甚至可以在终端中运行的简单编辑器。没有人需要 Blowclipse 或 IntelliHuge…
Ian:
另外,我应该使用哪个“二进制文件”?
选择适用于您操作系统的版本。只需将其放置在您需要的位置并运行即可。假设可执行文件名为 foo,并且您将其放在了与数据文件相同的文件夹中,那么您可以像这样运行:
./foo -block-file=GeoLite2-City-Blocks-IPv4.csv -output-file=GeoLite2-City-Blocks-IPv4-converted.csv -include-range
或者,相应地使用 *-IPv6* 版本。
但这与 Go 语言本身无关。这是每个程序员都应该知道的基本终端使用方法。
导入它,然后调用它,大致如下:
package main
import "github.com/maxmind/geoip2-csv-converter/convert"
func main() {
err = convert.ConvertFile("~/input.data", "~/output.data", true, false, false)
if err != nil {
panic(err)
}
}
将该文件保存在任意位置,然后使用终端 cd 到保存该文件的目录,并执行 go run filename。
我需要转换的只有两个文件:GeoLite2-City-Blocks-IPv4.csv 和 GeoLite2-City-Blocks-IPv6.csv。然后我会将这两个转换后的文件导入到 MySQL 数据库中。所以我想我的情况属于前者?如果是这样,你能帮我检查一下下面的命令是否正确吗?
-block-file=GeoLite2-City-Blocks-IPv4.csv -output-file=GeoLite2-City-Blocks-IPv4-converted.csv -include-range
另外,我应该使用哪个“二进制文件”?以及如何使用?
感谢您的说明。我尝试转换的文件是 GeoLite2-City-Blocks-IPv4.csv。它位于我桌面上的一个文件夹中。因此,我将 converter.go 文件保存在了同一个文件夹。
以下是我的 converter.go 文件:
package main
import "github.com/maxmind/geoip2-csv-converter/convert"
func main() {
err = convert.ConvertFile("~/GeoLite2-City-Blocks-IPv4.csv", "~/GeoLite2-City-Blocks-IPv4-converted.csv", false, true, false)
if err != nil {
panic(err)
}
}
但是,当我 cd 进入该文件夹并运行 go run converter.go 后,我收到了以下消息:
converter.go:3:8: cannot find package "github.com/maxmind/geoip2-csv-converter/c
onvert" in any of:
D:\Go\src\github.com\maxmind\geoip2-csv-converter\convert (from $GOROOT)
C:\Users\Ian\go\src\github.com\maxmind\geoip2-csv-converter\convert (fro
m $GOPATH)
首先,你需要在Windows命令提示符中操作。这个包是一个命令行工具,不是通过import在Go代码中使用的库。
步骤:
-
安装工具: 在命令提示符中运行:
go install github.com/maxmind/geoip2-csv-converter[@latest](/user/latest)这会在你的
GOPATH/bin目录(通常是%USERPROFILE%\go\bin)中生成可执行文件。 -
使用工具: 假设你要转换一个CSV文件,命令格式如下:
geoip2-csv-converter -block-file=GeoIP2-City-Blocks-IPv4.csv -output-file=output.csv你需要先下载MaxMind的CSV数据文件(如
GeoIP2-City-Blocks-IPv4.csv),然后在命令中指定路径。
示例: 如果你将数据文件放在桌面,可以这样操作:
cd Desktop
geoip2-csv-converter -block-file=GeoIP2-City-Blocks-IPv4.csv -output-file=result.csv
注意:
- 确保
%USERPROFILE%\go\bin已添加到系统PATH环境变量中,否则可能找不到geoip2-csv-converter命令。 - 如果遇到权限问题,以管理员身份运行命令提示符。
这个工具直接处理CSV文件,不需要在Go代码中编写程序。

