前言:继续安装中,这节记录 mac 安装 python 虚拟环境,多版本共存...
1. 安装 pip -- python的包管理工具:
sudo easy_install pip
安装成功,出现下面:
2. 安装完pip之后,就要安装 virtualenv:
sudo pip install virtualenv # 卸载安装:sudo pip uninstall virtualenv
据说如果是用的macOS 10.11可能会出现以下的提示(我用的是macOS 10.13,也出现以下的提示):
The directory '/Users/xxxx/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/xxxx/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
可以忽略,或者执行下面的命令(其实它已经在提示的最后建议要加上 -H):
sudo -H pip install virtualenv
3. 然后要安装virtualenvwrapper:
Virtaulenvwrapper 是 virtualenv 的扩展包,可以更方便地新增,删除,复制,切换虚拟环境。
sudo -H pip install virtualenvwrapper
安装成功如下:
据说,有人在安装的时候,遇到了这样的错误(我未遇到,未验证):
Installing collected packages: six
Found existing installation: six 1.4.
DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
Uninstalling six-1.4.:
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip-8.1.2-py2.7.egg/pip/basecommand.py", line , in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip-8.1.2-py2.7.egg/pip/commands/install.py", line , in run
prefix=options.prefix_path,
File "/Library/Python/2.7/site-packages/pip-8.1.2-py2.7.egg/pip/req/req_set.py", line , in install
requirement.uninstall(auto_confirm=True)
File "/Library/Python/2.7/site-packages/pip-8.1.2-py2.7.egg/pip/req/req_install.py", line , in uninstall
paths_to_remove.remove(auto_confirm)
File "/Library/Python/2.7/site-packages/pip-8.1.2-py2.7.egg/pip/req/req_uninstall.py", line , in remove
renames(path, new_path)
File "/Library/Python/2.7/site-packages/pip-8.1.2-py2.7.egg/pip/utils/__init__.py", line , in renames
shutil.move(old, new)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line , in move
copy2(src, real_dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line , in copy2
copystat(src, dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line , in copystat
os.chflags(dst, st.st_flags)
OSError: [Errno ] Operation not permitted: '/tmp/pip-vyEme3-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info'
执行下面的命令,重新安装:
sudo pip install pbr
sudo pip install --no-deps stevedore
sudo pip install --no-deps virtualenvwrapper
4. 创建虚拟环境:
source /usr/local/bin/virtualenvwrapper.sh
5. 让文件生效,并且要将命令写到 ~.bash_profile 里。
创建虚拟环境,指定python的版本,并将虚拟环境命名为python3
mkvirtualenv --python=/usr/local/bin/python3 python3
6. 创建好虚拟环境之后,会自动进入虚拟环境
退出虚拟环境的命令为 deactivate
虚拟环境的一些命令:
workon 会列出所有的虚拟环境
workon [name] 会进入指定的虚拟环境
deactivate 退出当前的虚拟环境
mkvirtualenv [name] 创建虚拟环境
rmvirtualenv [name] 删除虚拟环境
参考:https://blog.csdn.net/blog_user_zk/article/details/72844452