【Python入门】安装virtualenv及virtualenvwrapper

cmd命令进入要存储虚拟环境的文件夹

古人云:功遇善其事,必先利其器。在正式学习 Django Web
框架之前,我们要把准备工作做好。准备工作主要是搭建开发环境,具体工作是安装
Python、创建虚拟环境 venv、安装 Django、安装 IDE 工具(Pycharm)。

如何迁移后恢复重建开发环境

一个项目要分享到github , 或者开发组的其他成员, 又或者自己换了机器,
如何重建开发环境呢,装上一样的第三方包。 这里用自己的电脑模拟

cmd 定位到刚才桌面上的myapp文件夹。 

venvScriptsactivate.bat

激活virtualenv , 输入

pip freeze > requirements.txt

导出了第三包的记录文件 。

再在桌面创建一个test文件夹,
里面再创建一个myapp文件夹,把刚才Desktopmyapp里的 app.py 和
requirements.txt 文件复制到这个文件夹里。

另外打开一个cmd 定位到新建的 myapp 文件夹 ,然后创建virtualenv

python -m venv venv

使用上面的命令创建好之后 激活

venvScriptsactivate.bat

激活之后,注意现在工作在virtualenv里。使用pip
恢复安装依赖的第三方包,命令如下

pip install -r requirements.txt

等待完成。 运行app.py

python app.py

运行代码网络通畅的情况下会输出 200

至此恢复重建开发环境完成

 图片 1

 

 参考资料: 

                                         

virtualenv

I 用pip安装virtualenv

pip install virtualenv

如果失败,可以换sudo pip install virtualenv,如果还不行,那就根据问题提示Google吧.

II
假定我们要开发一个新的项目,需要一套独立的Python运行环境,先创建文件夹,例如命名为myproject

mkdir myproject
cd myprojict

III 在myproject目录下,创建一个独立的Python运行环境,例如命名为env1

virtualenv --no-site-packages env1

命令virtualenv就可以创建一个独立的Python运行环境,我们还加上了参数--no-site-packages,这样,已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。

IV 进入env1环境

source env1/bin/activate

注意此时命令行会多一个(env1),env1为虚拟环境名称,接下来所有模块都只会安装到该目录中去。
接下来你可以用pip安装包了.

V 退出环境

deactivate

此时就回到了正常的环境,现在pip或python均是在系统Python环境下执行。

VI 删除环境,直接删除环境所在文件夹

rm -r env1

virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source
venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。

 

图片来自 unsplash

Why 开发中遇到了问题

讲讲软件工程中写代码之外的知识。开发中我们往往遇到这些问题:

1、一个项目写了不少代码。使用一些第三方包或者模块,对于这个项目来说已经能很好的工作了,
但是后来这些包或模板有了新版,改动较大,一旦升级,之前的很多代码要改,很痛苦。但是咱们也不能永远用老版本的,新开的项目还是想尝尝鲜,又或工作之外自己想先熟悉新技术。默认情况下,一个系统中只有一份第三方包或模块,无法做到。所以我们希望自己的电脑中能同时共存多个版本的模块或包

2、自己写的项目源代码转移到别的机器上或者分享给别人,又或者从别人拿到项目,如何能快速重建开发环境呢,
项目用了哪些第三方包,什么版本。 如果这些搞不定,那么代码就跑不起来。
从github上下载的别人代码,是不包含第三方包的,有些人又不写文档,就算从代码报错中能找到缺少的第三方包或模块,也很难知道确切的版本,自己装的版本万一不合适又不行,有些代码中的模块名和在pip仓库中的名字也不一定相同,遇到自己不熟悉的pip
install 也白搭,总之麻烦一大堆。

 

virtualenvwrapper

virtualenvwrapper是virtualenv的扩展包,可以更方便地新增,删除,复制,切换虚拟环境。

I 利用pip安装

pip install virtualenvwrapper

同virtualenv,如果上面的命令不行,用sudo pip install virtualenvwrapper试试.

II
接下来创建我们今后使用Python的虚拟环境文件夹,例如命名为PythonVirtualEnv

mkdir PythonVirtualEnv

此时,还使用不了virtualenvwrapper的命令,因为virtualenvwrapper默认安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,这需要配置环境变量.
注:你可以用vi virtualenvwrapper.sh,查看环境变量的配置说明,摘出来如下:

# Setup:
#
#  1. Create a directory to hold the virtual environments.
#     (mkdir $HOME/.virtualenvs).
#  2. Add a line like "export WORKON_HOME=$HOME/.virtualenvs"
#     to your .bashrc.
#  3. Add a line like "source /path/to/this/file/virtualenvwrapper.sh"
#     to your .bashrc.
#  4. Run: source ~/.bashrc
#  5. Run: workon
#  6. A list of environments, empty, is printed.
#  7. Run: mkvirtualenv temp
#  8. Run: workon
#  9. This time, the "temp" environment is included.
# 10. Run: workon temp
# 11. The virtual environment is activated.
#

因为我用的zsh,所以需要在~/.zshrc中添加

export WORKON_HOME=$HOME/PythonVirtualEnv
source /usr/local/bin/virtualenvwrapper.sh

PythonVirtualEnv是我们刚才创建的文件夹.

保存退出.zshrc,重启终端(iTerm),或者source ~/.zshrc.

III 这样我们就可以用virtualenvwrapper命令了

  • 列出虚拟环境列表: workon 或者 lsvirtualenv
  • 新建虚拟环境: mkvirtualenv [虚拟环境名称]
  • 新建一个python3的虚拟环境: mkvirtualenv -p python3 [虚拟环境名称]
  • 启动/切换虚拟环境: workon [虚拟环境名称]
  • 进入当前环境: cdvirtualenv
  • 查看环境里安装了那些包: lssitepackages
  • 进入当前环境的site-paceages: cdsitepackages
  • 进入当前环境的site-paceages的某个包(比如pip): cdsitepackages pip
  • 复制虚拟环境: cpvirtualenv env1 env3
  • 删除虚拟环境: rmvirtualenv [虚拟环境名称]
  • 离开虚拟环境: deactivate
pip install virtualenv

6 写在最后

我新建一个 Python Web 学习交流 QQ
群,群号:701534112。欢迎大家加群,一起交流,一起学习。


上篇阅读:几个 Python
编程小技巧
推荐阅读:pustil –
获取系统信息库


What 什么能解决我们的问题 virtualenv 和 pip

java 中有maven 和 pom.xml ,android 有 gradle 和 build.gradle , node.js
有 npm 和
package.json。 pom.xml、  build.gradle、package.json都是记录依赖包及其版本的配置文件。

python 中解决第 1 个问题,就引出了
virtualenv 虚拟环境, 解决第 2 个问题,就需要pip 和 virtualenv
配合使用。
 

pip
是管理第三方包的,默认情况下,是装在全局系统里的,所有项目都共用同一个版本的第三方包

有了 virtualenv 每个项目都能有自己独立第三方包,隔离了。一个项目用 v1.0
 另一个项目能用 v2.0

 

参考文章

  • virtualenv
  • 详解Mac配置虚拟环境Virtualenv,安装Python科学计算包
  • Python
    虚拟环境:Virtualenv

 

5 初始 Django

我之前写了 Django 初始系列文章。你可以先阅读下,这样你对 Django
有整体的认识以及掌握些基本知识(创建项目,运行项目等)。

Django学习之旅(一)
Django学习之旅(二)
Django学习之旅(三)
Django学习之旅(四)
Django学习之旅(五)
Django学习之旅(六)

如何使用 virtualenv

python 3.6.3 Windows
安装包已经包含了这个功能。在桌面创建一个myapp的文件夹,作为我们的项目文件。
打开文件夹, 按下Alt + D , 光标就会定位到地址栏, 输入cmd
 enter,弹出cmd 窗口并在这个文件夹了,免去繁琐的cd。
注意以下过程中不要关闭cmd

 输入 

python -m venv venv

这将会在 myapp 文件夹内创建一个 venv 文件夹。 第一个venv 是调用
virtualenv 功能, 第二个 venv 是文件夹的名称,
可以任意取一个自己喜欢的名称

如果这步操作不行,可能是跟我的python版本不同,
或者安装的时候缺少了什么。那么需要换一种方式,输入

pip install virtualenv

安装完成后 输入

virtualenv venv

同样也能创建 venv 文件夹。 python -m venv
venv   正常工作的不用管上面两步

看看venv 文件夹 这里面就包含了一些独立运行需要的文件。

有了这个文件夹之后, 使用 pip install
,仍然安装到全局系统中。那么如何才能工作在virtualenv 中呢,输入 

venvScriptsactivate.bat

可以看到,原来的路径前面多了一个 (venv) ,如果你用的别的名字,就是别的。
如果关闭了cmd ,再打开仍然要用这种方式激活

图片 2

 

 

下面以requests 包为例写个例子项目, 进入 virtualenv环境后,输入

pip install requests

创建一个python 源文件 app.py ,输入以下代码

import requests

r = requests.get('https://www.baidu.com')
print(r.status_code)

然后回到 cmd 输入 

python app.py

运行代码网络通畅的情况下会输出 200

为了证明使用了 virtualenv ,确实能隔离 第三方包依赖。 现在我们离开
virtualenv环境
,cmd 输入 

venvScriptsdeactivate.bat

可以看到,路径前面的(venv) 没了,回到了全局系统 。
如果之前按照步骤执行过  pip uninstall requests
 现在全局系统中就不存在这个第三方包了

再次输入

python app.py

得到输出

Traceback (most recent call last):
  File "app.py", line 1, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

别的项目 也像 myapp 这样去处理,就可以依赖关系隔离了

                     

Linux and
python学习交流3群新开,欢迎加入,一起学习.qq 3群:563227894

1 安装 Python

如果你使用的桌面系统是 Windows,你需要到 Python 官网下载安装包。 Linux
和 Mac 系统都自带了 Python 运行环境。Python 分为 2 和 3 版本,目前
Python 团队即将停止维护 Python 2 版本,所以建议安装 Python
3。目前最新版本是 3.6.4。另外,本系列文章适合具备 Python
基础的同学。如果你对 Python 基本语法还是很懵懂,建议你先把基础知识夯实。

作者:Panda Fang

出处:

原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动

virtualenv创建:

4 安装 IDE 工具(Pycharm)

我们需要到 Pycharm 官网下载安装包。
安装版本一定要选择 Professional !
安装版本一定要选择 Professional !
安装版本一定要选择 Professional !
重要的话说三遍~

因为这个版本集成了很多 Web 开发组件,无须手动。

另附上
PyCharm下载地址

Pycharm
是收费版本。如果你有条件的话,可以选择购买正版。或者到网上选择激活码。

如何使用 pip 常用功能

我使用的是windows 10 和 从python官网下载的 python 3.6.3 exe
安装包,别的系统和版本可能会遇到不同的问题。这个版本安装完成后,已经带上了pip。

按  ❖  + R 然后输入cmd 进入命令行,输入  pip  将会显示pip 的用法,
如果出错,可能没有装上pip ,
 参考 如何安装pip

正常情况下会显示如下内容(我这里只贴出部分)

Usage:
  pip <command> [options]

Commands:
  install                     Install packages.
  download                    Download packages.
  uninstall                   Uninstall packages.
  freeze                      Output installed packages in requirements format.
  list                        List installed packages.
  show                        Show information about installed packages.
  check                       Verify installed packages have compatible dependencies.
  search                      Search PyPI for packages.
  wheel                       Build wheels from your requirements.
  hash                        Compute hashes of package archives.
  completion                  A helper command used for command completion.
  help                        Show help for commands.

 

下面介绍pip 常用法,以requests 模块为例

查看pip 版本

pip -V

 

安装第三方包 格式:  pip install
<package>   

 pip install requests  或者可以指定版本  pip install requests==2.18.0  输入完成后enter等待安装完成。

想知道仓库中有哪些可选版本

>= pip 9.0 以后

pip install requests==

得到信息

Collecting requests==
  Could not find a version that satisfies the requirement requests== (from versions: 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.6.5, 0.6.6, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.8.7, 0.8.8, 0.8.9, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.10.0, 0.10.1, 0.10.2, 0.10.3, 0.10.4, 0.10.6, 0.10.7, 0.10.8, 0.11.1, 0.11.2, 0.12.0, 0.12.1, 0.13.0, 0.13.1, 0.13.2, 0.13.3, 0.13.4, 0.13.5, 0.13.6, 0.13.7, 0.13.8, 0.13.9, 0.14.0, 0.14.1, 0.14.2, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.1.0, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 2.0.0, 2.0.1, 2.1.0, 2.2.0, 2.2.1, 2.3.0, 2.4.0, 2.4.1, 2.4.2, 2.4.3, 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.6.0, 2.6.1, 2.6.2, 2.7.0, 2.8.0, 2.8.1, 2.9.0, 2.9.1, 2.9.2, 2.10.0, 2.11.0, 2.11.1, 2.12.0, 2.12.1, 2.12.2, 2.12.3, 2.12.4, 2.12.5, 2.13.0, 2.14.0, 2.14.1, 2.14.2, 2.15.1, 2.16.0, 2.16.1, 2.16.2, 2.16.3, 2.16.4, 2.16.5, 2.17.0, 2.17.1, 2.17.2, 2.17.3, 2.18.0, 2.18.1, 2.18.2, 2.18.3, 2.18.4)
No matching distribution found for requests==

< pip 9.0  给一个无效的版本号

pip install requests==-1

 

安装后想查看安装的什么版本、作者、存放位置等信息 格式  pip show <package> 

pip show requests

 卸载第三方包 格式  pip uninstall
<package> 

pip uninstall requests

列出所有已安装包及其版本

pip list

 

退出虚拟环境
    deactivate

3 安装 Django

还是上述的虚拟环境中,我们通过 pip 方式来安装
Django。如果你把终端关闭了,这也意味着把虚拟环境给关闭了。你按照上述激活步骤重新进入虚拟环境即可。

D:web_dev>D://web_dev/Scripts/activate.bat
(web_dev) D:web_dev>pip install django
Collecting django

How 如何使用

AssertionError: Filename C:Python27Libos.py does not start with any of these prefixes: ['C:\python27']

2.1 venv 使用

创建 Python 虚拟环境,其实是“创建” 一个文件夹。假如我们需要在 D
盘中创建一个名为 web_dev 的虚拟环境。打开终端,执行以下命令。

// venv 后面接上创建虚拟环境的绝对路径,建议文件名不要事先存在。
// Windows、Mac、Linux 执行命令都是一样,只不过路径不一样
python -m venv D://web_dev

执行创建命令之后,你会发现多出了一个名为 web_dev
文件夹,这说明已经创建成功。进入目录,里面有四个文件夹。

图片 3

创建虚拟环境的完成,只是完成了一半工作。革命还尚未成功,我们还需要激活虚拟环境。依然是打开终端,进入
Scripts 文件夹,运行 activate.bat 来激活虚拟环境。 Linux 下没有
Scripts 这个目录,取而代之的是
bin目录。而激活脚本名则是activate

图片 4

激活完毕,我们下一步就是安装 Django 库。

C:Python27myenvScripts>activate

(myenv) C:Python27myenvScripts>

图片 5

发表评论

电子邮件地址不会被公开。 必填项已用*标注