govirtualenv:适用于Go语言的python虚拟环境
govirtualenv 是为 Go 语言设计的虚拟环境工具。
简介
-
- Go言語向けに、pythonのvirtualenvっぽいツールを作りました
-
- Windows/Linux/MacOSで利用できます
-
- 宣伝風記事です
- goenvとかgvmとかあるじゃんと言うのは知ってます
2017年11月30日添加
- version 0.1としてリリースしました。Windows/Linux/MacOSに対応しています
2017年11月29日 补充
- RC5にて Windowsに対応しました。特に何もなければversion 0.1としてリリース予定です
本题
在使用Python来管理项目(或开发环境)的包时,通常使用virtualenv创建Python虚拟环境。
# 環境の構築
$ virtualenv MyProjectEnv
$ source MyProjectEnv/bin/activate
# ここからPython仮想環境
(MyProjectEnv) $
# 仮想環境のみにパッケージをインストール
(MyProjectEnv) $ pip install sphinx
(MyProjectEnv) $ deactivate
在Go语言中,通过使用GOPATH,可以使每个项目都能够独立安装包(忽略版本的情况下),从而实现每个项目的包管理变得简单。
$ export GOROOT=<MyGOROOT>
$ export GOPATH=<MyProjectPath>
# パッケージのインストール
$ go get github.com/....
然而,必须设置环境变量GOPATH和GOROOT如上所述。这样每次关闭终端都需要重新设置。虽然可以将其写入.bashrc,但这样一来在每个项目之间切换将变得不那么容易。
因此,在GO语言中,已经存在着名的工具goenv和gvm。
这些工具简化了安装GO语言的各个版本,并便于切换GOROOT。
然而,用户需要判断并执行哪个项目使用哪个版本的Go并切换GOPATH。
所以,因为我目前找不到那个,所以决定创建这些的工具来使其更容易。这就是我接下来要介绍的govirtualenv。
进入虚拟环境
govirtualenv是用于创建和切换Go语言环境的工具。除了安装脚本外,其余部分都是用Go语言编写的。
以下是主要功能。
-
- Go言語バージョンの管理(インストール、アンインストール)
-
- プロジェクト作成
- プロジェクト毎のGOROOTとGOPATHの切り替え
在中国,Github
创建一个 Golang 虚拟环境。
使用方法 (Shi3 yong4 fang1)
$ govirtualenv --help
Usage: govirtualenv <flags> <subcommand> <subcommand args>
Subcommands:
available Show available golang version
change change changes current using golang version.
commands list all command names
flags describe all known top-level flags
help describe subcommands and their syntax
install Install new golang version
list Show all installed golang version
remove Remove installed golang version
startproject Start new project with given golang verison
Use "govirtualenv flags" for a list of top-level flags
Go语言版本的管理
要安装新的Go语言版本,可以选择安装包或者构建,无论哪种方式都会比较麻烦。但是,使用govirtualenv可以简单地进行安装。
$ govirtualenv available # インストールできるバージョンを調べる
go1
go1.0.1
go1.0.2
go1.0.3
go1.1
--- Goのバージョンが続く ---
weekly.2012-03-13
weekly.2012-03-22
weekly.2012-03-27
$ govirtualenv install go1.9.1 # 1.9.1をインストール
另外,如果想要删除的话
$ govirtualenv list # インストール済みのバージョンを表示
go1.9.1
....
$ govirtualenv go1.9.1 # 削除
就像这样,govirtualenv负责管理所有事务。
创建项目
对于 govirtualenv 来说,与其他工具不同的是,您可以创建项目。
$ govirtualenv startproject go1.9.1 MyProject #go1.9.1 を使うプロジェクトを作成
Project MyProject created.
$ ls -a MyProject
./ ../ .project/
“project”目录中包含了govirtualenv需要的数据以及用户工具。
切换每个项目的GOROOT和GOPATH。
如果使用 govirtualenv,当每次开始其他项目的工作时,就不需要使用 export 或 set 命令。此外,也不需要再问自己 “我在这个项目中使用的是哪个版本” 。
一旦创建项目,只需要按照以下方式进行操作,就可以设置好 GOROOT 和 GOPATH。
$ ls
MyProject/
$ source MyProject/.project/bin/activate
(MyProject) $
(MyProject) $ echo $GOROOT
/home/your-name/.govenv/goroots/go1.9.1
(MyProject) $ echo $GOPATH
/home/your-name/MyProject
您可以像使用Python的virtualenv一样进入虚拟环境。
如果您的项目工作已经完成,并且想要切换到下一个工作,
(MyProject) $ deactivate
$
只需这样一做,就可以回到原来的环境。
最后
如果你有兴趣,不妨试试看。
真实的声音
坦白说,由于这是为了自己而开发的工具,我并不期望它会被广泛传播。
而且,考虑到我只有一年左右的Go语言经验,简单来说,这只是一个练习作品。