WSL Ubuntu 18.04上使用pipenv的4个关键点
WSL是什么?简单点讲WSL是微软在windows上嵌入的Linux系统,直接开启Ubuntu WSL即可在windows上使用Linux了,免去自己装双系统的麻烦。pipenv又是什么鬼?我们为写一个python脚本/程序的时候都需要下载一堆依赖包,不同的项目中的依赖包可能互相冲突,为了避免相互影响,可使用pipenv来安装python虚拟环境,为每个应用单独下载依赖包,相互隔离。默认在WSL下使用pipenv的时候会有些问题,这边文章把几个关键点列出避免踩坑,供参考。
1.Pipenv的常见命令
相比virtualenv,pipenv更加智能,也不需要自己写requirement.txt文件。
1 | pipenv install # 安装虚拟环境 ,如果工程目录下有Pipfile则会自动安装,如果没有则会先生成Pipfile |
2.以root账号执行profile使环境变量生效
使用WSL基本都是没有使用bash --login
的,这就导致基本环境变量没有加载,需要我们手动加载使环境变量生效。
1 | sudo -s |
否则会出现找不到pipenv
,参考自superuser。
3.修改项目的Pipfile中的url为国内镜像地址
1 | [[source]] |
url可以修改为华为镜像https://repo.huaweicloud.com/repository/pypi/simple,或者阿里镜像https://mirrors.aliyun.com/pypi/simple。
或者,在环境变量中指定源,这样可以一劳永逸的解决镜像问题。
在用户环境变量文件(~/.bash_profile,或者~/.profile)
或者系统环境变量文件(/etc/profile)
中添加都行。
1 | export PIPENV_TEST_INDEX=https://repo.huaweicloud.com/repository/pypi/simple |
编辑完成之后,执行source ~/.profile
生效环境变量。
4.修改Pipenv的虚拟环境的默认生成目录
共有三种方法:
export PIPENV_VENV_IN_PROJECT=1
设置这个环境变量,pipenv会在当前目录下创建.venv的目录,以后都会把模块装到这个.venv下。- 自己在项目目录下手动创建.venv的目录,然后运行
pipenv run
或者pipenv shell
pipenv都会在.venv下创建虚拟环境。 - 设置
WORKON_HOME
到其他的地方 (如果当前目录下已经有.venv,此项设置失效)
我喜欢通过设置WORKON_HOME
到指定目录,在~/.profile
下增加环境变量:
1 | export WORKON_HOME=/home/laomei/pipenv_home |
然后生效环境变量source ~/.profile
即可。
文章首发公众号-梅旭红,欢迎关注,不定期更新。
全文完。
------------------------------------

欢迎关注公众号-梅旭红,记录技术之旅,不定期更新.
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梅旭红!