在python实际开发中,往往需要虚拟环境来保证每个项目有独立的依赖环境,不相互影响,virtualenv等工具的出现正好解决了这个问题。
基本包
virtualenv
安装方法
pip install virtualenv附加包
virtualenvwrapper
用于简化虚拟环境的使用和管理
安装方法
pip install virtualenvwrapper
source /usr/local/bin/virtualenvwrapper.sh(初始化virtualenv环境,将这行命令添加到~/.bashrc或~/.zshrc,避免每次手动初始化,没有则新建)
基本用法
命令语法可查看virtualenvwrapper官方文档
新建venv
mkvirtualenv -p python3 djangodev(指定python版本)
列举venv
lsvirtualenv
进入当前venv目录
cdvirtualenv
切换venv
workon [env name]
退出venv
deactivate
删除venv
rmvirtualenv [env name]
建议
将虚拟环境放在固定的目录,便于统一管理。例如,新建~/.virtualenvs/
目录,需要使用虚拟环境的项目都放在这个目录下。(如果使用virtualwrapper会自动创建该目录,不能手动新建,否则会产生冲突)问题
a. 在linux下,手动安装python3.6后,在virtualenvs使用pip安装依赖包时出现ssl module不存在
~/.virtualenvs/djangodemo » pip install django redhat@redhat-pc
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting django
Could not fetch URL https://pypi.douban.com/simple/django/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
Could not find a version that satisfies the requirement django (from versions: )
No matching distribution found for django
重新手动安装python3
sudo apt-get install python3-dev libffi-dev libssl-dev
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar xvf Python-3.6.0.tgz
cd Python-3.6.0
./configure --enable-optimizations
make -j8
sudo make altinstall
python3.6
解决方案
b.virtualenv只是为python工程提供必要的开发环境,并不需要将工程和虚拟环境放在一起,这样有可能在使用git的时候将追踪虚拟环境的bin、include等目录,造成不必要的冲突。