在初学任何一种开发语言的时候,开发环境的搭建总会出现各种各样的问题,所以我将会在日后把我遇到的典型问题和解决方法都记录下来,方便日后查看。当然也许有人会说,当前我们可以使用Vagrant或者Docker这样的虚拟化或者容器化来做开发,但是我个人觉得掌握这些基本技能很重要,就好比武侠小说里面,真正武功高强的人,离开了神兵利器,照样可以以一敌百,无人可挡。当然,像Vagrant和Docker这样的神兵利器我们也需要去学,这样才能如虎添翼,好了,废话不多说,进入正题。
同样,在接着上一篇文章走向Python世界的大门:安装Python3.6之后,我们在上一篇的基础上,在windows和linux两种环境之下安装Python虚拟环境管理工具virtualenvwrapper。
Linux环境
首先,在Ubuntu上安装virtualenvwrapper可能会出现一些常见的问题,我把我安装当中遇到的一些问题和解决方法会写出来。
要安装virtualenvwrapper,直接在shell终端中输入:
pip3 install virtualenvwrapper
如果能够正常安装,那恭喜你,如果不能,则看下面有没有你遇到的问题和解决方法。
- 问题1:
Traceback (most recent call last): File "/usr/bin/pip3", line 9, in <module> from pip import main ImportError: cannot import name 'main' Error in sys.excepthook: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook from apport.fileutils import likely_packaged, get_recent_crashes File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module> from apport.report import Report File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module> import apport.fileutils File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module> from apport.packaging_impl import impl as packaging File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module> import apt File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module> import apt_pkg ModuleNotFoundError: No module named 'apt_pkg' Original exception was: Traceback (most recent call last): File "/usr/bin/pip3", line 9, in <module> from pip import main ImportError: cannot import name 'main'
这应该是pip的bug,解决方法是修改 /usr/bin/pip3 文件,将文件中的以下内容:
from pip import main if __name__ == '__main__': sys.exit(main())
改成
from pip import __main__ if __name__ == '__main__': sys.exit(__main__._main())
解决上面这个问题之后,再输入:
sudo pip3 install virtualenvwrapper
应该就可以安装成功了,安装成功之后,在shell终端中输入:
workon
测试一下,可能会出现缺少gdbm的错误,如果有,则安装gdbm即可:
sudo apt-get install python3.6-gdbm
到这里,virtualenvwrapper应该安装完成了,这时候还需要配置virtualenvwrapper
的环境变量,首先在当前用户目录下创建.virtualenvs
文件夹,用来存放所有的虚拟环境目录。然后通过which virtualenvwrapper.sh
查看路径,一般默认情况下是在 /usr/local/bin/virtualenvwrapper.sh
。然后在当前用户目录下编辑 .bashrc
文件(即 ~/.bashrc文件),使用vim ~/.bashrc
打开并编辑,在文件的末尾添加如下内容:
export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh
然后退出 bashrc
文件,输入命令source ~/.bashrc
,这时候可能会出现以下问题:
/usr/bin/python: No module named virtualenvwrapper virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenvwrapper has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is set properly.
这是因为virtualenvwrapper依赖的Python环境设置不对,只需要再次使用vim ~/.bashrc
打开并编辑,再在export WORKON_HOME=$HOME/.virtualenvs
上面一行添加export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.6
,添加之后在bashrc
文件的最后应该是这样的:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.6 export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh
再次保存并退出 bashrc
文件,输入命令source ~/.bashrc
,会出现如下输出:
virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/premkproject virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/postmkproject virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/initialize virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/premkvirtualenv virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/postmkvirtualenv virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/prermvirtualenv virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/postrmvirtualenv virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/predeactivate virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/postdeactivate virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/preactivate virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/postactivate virtualenvwrapper.user_scripts creating /home/galaxy/.virtualenvs/get_env_details
里面的“galaxy“是我的用户名哦,不是你的。到这里,virtualenvwrapper就顺利安装完毕了,可以使用命令mkvirtualenv test来创建yi个名称为test的虚拟huanjing环境玩玩了。
Windows环境
windows环境下的安装这里就不多说了,很简单,只要打开cmd终端输入
pip install virtualenvwrapper-win
注意这里的virtualenvwrapper-win就是windows上面的virtualenvwrapper,不要以为名字不同就不一样。安装完了之后可以自己配置虚拟环境存放的路径,也可以不设置,使用默认的路径。若是要自己配置,只需建立环境变量,变量名称为WORKON_HOME,值就是你自己要设置的路径了。
很晚了,要睡觉了。