Skip to content

Commit

Permalink
更新 Django 翻译文章
Browse files Browse the repository at this point in the history
  • Loading branch information
walter201230 committed Apr 25, 2018
1 parent 8153fb0 commit 1a52b2a
Show file tree
Hide file tree
Showing 9 changed files with 1,841 additions and 7 deletions.
140 changes: 140 additions & 0 deletions Article/advanced/Mac中使用virtualenv和virtualenvwrapper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@

## Virtualenv

### 介绍

在使用 `Python` 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。

因此,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。而 `virtualenv`就是一个可以帮助我们管理不同 `Python` 环境的绝好工具。`virtualenv` 可以在系统中建立多个不同并且相互不干扰的虚拟环境。

### 安装

```
pip3 install virtualenv
```

这样就成功了

### 使用

#### 创建

假如我们想要用`scrapy`去爬取某个网站的信息,我们不想再宿主环境总安装scrapy以及requests这些包,那我们就可以使用virtualenv了。

假设我们把这个虚拟环境放在`~/workspaces/project_env/spider/`目录下

```
virtualenv ~/workspaces/project_env/spider/
```

这样虚拟环境就创建好了,我们可以看到在这个目录下油三个目录被建立

* bin:包含一些在这个虚拟环境中可用的命令,以及开启虚拟环境的脚本 `activate`
* include:包含虚拟环境中的头文件,包括 `Python` 的头文件
* lib:这里面就是一些依赖库

#### 激活

```
source ~/workspaces/project_env/spider/bin/activate
```

此时我们就已经在虚拟环境中了

可以安装一下requests这个模块

```
pip install requests
```

可以看到很快就成功

#### 退出虚拟环境

```
deactivate
```

## virtualenvwrapper

### 介绍

我们刚才了解了`virtualenv`,我觉得比较麻烦,每次开启虚拟环境之前要去虚拟环境所在目录下的 `bin` 目录下 `source`一下 `activate`,这就需要我们记住每个虚拟环境所在的目录。

一种可行的解决方案是,将所有的虚拟环境目录全都集中起来,比如放到 `~/virtualenvs/`,并对不同的虚拟环境使用不同的目录来管理。`virtualenvwrapper` 正是这样做的。并且,它还省去了每次开启虚拟环境时候的 `source` 操作,使得虚拟环境更加好用。

### 安装

```
pip install virtualwrapper
```

这样我们就安装好了可以管理虚拟环境的神器

### 使用

#### 配置

首先需要对`virtualenvwrapper`进行配置:

* 需要指定一个环境变量,叫做`WORKON_HOME`,它是用来存放各种虚拟环境目录的目录
* 需要export vitualenvwrapper这个模块存放的位置
* 需要运行一下它的初始化工具 `virtualenvwrapper.sh`,可通过`which virtualenvwrapper.sh`查看位置,我的在`/usr/local/bin/`

由于每次都需要执行这两步操作,我们可以将其写入终端的配置文件中。

如果使用 `bash`,则添加到 `~/.bashrc` 中

如果使用 `zsh`,则添加到 `~/.zshrc` 中

这样每次启动终端的时候都会自动运行,终端启动之后 `virtualenvwrapper` 就可以用啦

```
export WORKON_HOME='~/Workspaces/Envs'
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
```


**创建虚拟机**

```
mkvirtualenv env
```

创建虚拟环境完成后,会自动切换到创建的虚拟环境中

当然也可以指定虚拟机的 python 版本

```
mkvirtualenv env -p C:\python27\python.exe
```

**列出虚拟环境列表**

```
workon 或者 lsvirtualenv
```

**启动/切换虚拟环境**

使用 workon [virtual-name] 即可切换到对应的虚拟环境

```
workon [虚拟环境名称]
```


**删除虚拟环境**

```
rmvirtualenv [虚拟环境名称]
```

**离开虚拟环境,和 virutalenv 一样的命令**

```
deactivate
```
1 change: 1 addition & 0 deletions Article/advanced/advanced.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
* [使用Python虚拟环境](/Article/advanced/使用Python虚拟环境.md)
* [Mac中使用virtualenv和virtualenvwrapper](/Article/advanced/Mac中使用virtualenv和virtualenvwrapper.md)
15 changes: 8 additions & 7 deletions Article/advanced/使用Python虚拟环境.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,10 @@ python 的虚拟环境可以为一个 python 项目提供独立的解释环境
**安装 virtualenv**

```
$ pip install virtualenv
$ pip install virtualenv
```


**配置 pip 安装第三方库的镜像源地址**

我们都知道,国内连接国外的服务器都会比较慢,有时候设置下载经常出现超时的情况。这时可以尝试使用国内优秀的[豆瓣源](https://pypi.douban.com/simple)镜像来安装。
Expand All @@ -26,16 +27,16 @@ pip install -i https://pypi.douban.com/simple virtualenv

```
virtualenv env
```
```


当然在创建 env 的时候可以选择 Python 解释器,例如:
当然在创建 env 的时候可以选择 Python 解释器,例如:

```
virtualenv -p /usr/local/bin/python3 venv
```

默认情况下,虚拟环境会依赖系统环境中的 site packages,就是说系统中已经安装好的第三方 package 也会安装在虚拟环境中,如果不想依赖这些 package,那么可以加上参数 `--no-site-packages` 建立虚拟环境
默认情况下,虚拟环境会依赖系统环境中的 site packages,就是说系统中已经安装好的第三方 package 也会安装在虚拟环境中,如果不想依赖这些 package,那么可以加上参数 `--no-site-packages` 建立虚拟环境

```
virtualenv --no-site-packages [虚拟环境名称]
Expand All @@ -56,11 +57,11 @@ source ./bin/activate
deactivate
```

如果想删除虚拟环境,那么直接运行`rm -rf venv/`命令即可。
如果想删除虚拟环境,那么直接运行`rm -rf venv/`命令即可。

**在虚拟环境安装 Python packages**

Virtualenv 附带有 pip 安装工具,因此需要安装的 packages 可以直接运行:
Virtualenv 附带有 pip 安装工具,因此需要安装的 packages 可以直接运行:

```
pip install [套件名称]
Expand Down Expand Up @@ -116,7 +117,7 @@ workon [虚拟环境名称]
```


**删除虚拟环境**
**删除虚拟环境**

```
rmvirtualenv [虚拟环境名称]
Expand Down
12 changes: 12 additions & 0 deletions Article/django/Django.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Django

Python 下有许多款不同的 Web 框架。Django 是重量级选手中最有代表性的一位。许多成功的网站和 APP 都基于 Django。

如果对自己的基础有点信息的童鞋,可以尝试通过国外的 ![Django 博客从搭建到部署系列教程](https://simpleisbetterthancomplex.com/series/2017/09/04/a-complete-beginners-guide-to-django-part-1.html) 进行入门,这个教程讲的非常的详细,而且还有很多有趣的配图。不过可能因为墙的原因,很多人会访问不到,就算访问到了,也因为是英语的,不会进行耐心的阅读学习。因此我打算翻译这个教程。

* [一个完整的初学者指南Django-part1](/Article/django/一个完整的初学者指南Django-part1.md)
* [一个完整的初学者指南Django-part2](/Article/django/一个完整的初学者指南Django-part2.md)

后面经一个朋友说,这个教程已经有人在翻译了,因此我也不翻译了,不过感觉我的翻译还是挺好的,因为不是直译的,是通过了解后,用自己的语言再次表达出来。

这里有上面这个教程翻译计划的 [Github](https://github.com/wzhbingo/django-beginners-guide) 以及 [博客](https://www.cloudcrossing.xyz/post/20/),觉得哪个看得舒服,就选哪个进行学习。
Loading

0 comments on commit 1a52b2a

Please sign in to comment.