虛擬環境
雖然不是嚴格要求,但強烈建議你在虛擬環境中啟動專案。虛擬環境是一個容器 (目錄),它包含特定版本的 Python 和一組模組(依賴項),並且不會干擾作業系統的本機 Python 或同一臺計算機上的其他專案。
通過為你處理的每個專案設定不同的虛擬環境,各種 Django 專案可以在不同版本的 Python 上執行,並且可以維護自己的依賴項集,而不存在衝突風險。
Python 3.3+
Python 3.3+已經包含一個標準的 venv
模組,你通常可以稱之為 pyvenv
。在 pyvenv
命令不可用的環境中,你可以通過直接呼叫模組 python3 -m venv
來訪問相同的功能。
要建立虛擬環境:
$ pyvenv <env-folder>
# Or, if pyvenv is not available
$ python3 -m venv <env-folder>
Python 2
如果使用 Python 2,你可以先將其作為一個單獨的模組從 pip 安裝:
$ pip install virtualenv
然後使用 virtualenv
命令建立環境:
$ virtualenv <env-folder>
啟用(任何版本)
現在已設定虛擬環境。要使用它,必須在要使用它的終端中啟用它。
啟用虛擬環境(任何 Python 版本)
Linux 喜歡:
$ source <env-folder>/bin/activate
Windows 喜歡:
<env-folder>\Scripts\activate.bat
這會更改你的提示以指示虛擬環境處於活動狀態。(<env-folder>) $
從現在開始,使用 pip
安裝的所有內容都將安裝到虛擬環境資料夾中,而不是系統範圍內。
離開虛擬環境使用 deactivate
:
(<env-folder>) $ deactivate
或者:使用 virtualenvwrapper
你也可以考慮使用 virtualenvwrapper ,它使 virtualenv 的建立和啟用非常方便,並將它與你的程式碼分開:
# Create a virtualenv
mkvirtualenv my_virtualenv
# Activate a virtualenv
workon my_virtualenv
# Deactivate the current virtualenv
deactivate
或者:使用 pyenv + pyenv-viritualenv
在需要處理多個 Python 版本的環境中,你可以與 virtualenv 以及 pyenv-virtualenv 一起受益:
# Create a virtualenv for specific Python version
pyenv virtualenv 2.7.10 my-virtual-env-2.7.10
# Create a vritualenv for active python verion
pyenv virtualenv venv34
# Activate, deactivate virtualenv
pyenv activate <name>
pyenv deactivate
使用 virtualenvs 時,在 postactivate
指令碼中設定 PYTHONPATH
和 DJANGO_SETTINGS_MODULE
通常很有用。
#!/bin/sh
# This hook is sourced after this virtualenv is activated
# Set PYTHONPATH to isolate the virtualenv so that only modules installed
# in the virtualenv are available
export PYTHONPATH="/home/me/path/to/your/project_root:$VIRTUAL_ENV/lib/python3.4"
# Set DJANGO_SETTINGS_MODULE if you don't use the default `myproject.settings`
# or if you use `django-admin` rather than `manage.py`
export DJANGO_SETTINGS_MODULE="myproject.settings.dev"
設定專案路徑
在基礎 <env-folder>
中的特殊 .project
檔案中設定專案路徑通常也很有幫助。執行此操作時,每次啟用虛擬環境時,它都會將活動目錄更改為指定的路徑。
建立一個名為 <env-folder>/.project
的新檔案。該檔案的內容應該只是專案目錄的路徑。
/path/to/project/directory
現在,啟動你的虛擬環境(使用 source <env-folder>/bin/activate
或 workon my_virtualenv
),你的終端將目錄更改為/path/to/project/directory
。