背景說明:
Django到目前,版本已經出到了3.1,但是此時,大多數還在使用2.x,甚至還有1.x版本的。
我想使用目前穩定長期支持的2.x系列,但是我用pycharm創建django項目時,它老是給我安裝最新的3.1版本,雖然可以在界面上卸載並安裝我指定的版本,但是已經生成的django項目文件是3.1版本生成出來的,文件部分內容已經跟低版本創建出來的有不同,保守起見,我還是想用2.x版本創建出我熟悉的項目文件,那么就得自己先准備好環境(指定好2.x版本的django),然后再用pycharm去open這個項目,調整一下配置即可。
解決方法:
方法1. 在本地環境中先裝好2.x版本的django,然后pycharm新建項目的時候選擇本地環境,pycharm檢測到本地有django,就不會去下載最新的版本了;
方法2. 准備好虛擬環境,在虛擬環境中安裝好2.x版本的django,並在虛擬環境中手動創建好project或者包括app,然后在用pycharm打開這個項目,並在界面上選擇一下環境,就完事了;
說明:方法1比較簡單,這里記錄一下方法2的操作流程
操作環境:
MacOS 【跟Linux下的命令行幾乎一樣;Windows 使用終端運行,也差不多】
具體步驟:
1. 要創建虛擬環境,那么就要安裝能夠創建虛擬環境的工具,這里采用pipenv
pip3 install pipenv
2. 找一個目錄創建一個工程文件夾project1
/Users/adrian/Documents/django adrian@xxxMacBook-Pro django % ls -l adrian@xxxMacBook-Pro django % mkdir project1
3. 進project1目錄創建虛擬環境
adrian@xxxMacBook-Pro django % cd project1 adrian@xxxMacBook-Pro project1 % pipenv install Creating a virtualenv for this project… Pipfile: /Users/adrian/Documents/django/project1/Pipfile Using /usr/local/bin/python3 (3.8.5) to create virtualenv… ⠴ Creating virtual environment...created virtual environment CPython3.8.5.final.0-64 in 288ms creator CPython3Posix(dest=/Users/adrian/.local/share/virtualenvs/project1-2AECiQAe, clear=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/adrian/Library/Application Support/virtualenv) added seed packages: pip==20.2.1, setuptools==49.2.1, wheel==0.34.2 activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator ✔ Successfully created virtual environment! Virtualenv location: /Users/adrian/.local/share/virtualenvs/project1-2AECiQAe Creating a Pipfile for this project… Pipfile.lock not found, creating… Locking [dev-packages] dependencies… Locking [packages] dependencies… Updated Pipfile.lock (db4242)! Installing dependencies from Pipfile.lock (db4242)… 🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/0 — 00:00:00 To activate this project's virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run.
3. 激活這個虛擬環境並在里面安裝django 2.x版本
adrian@xxxMacBook-Pro project1 % pipenv shell Launching subshell in virtual environment… . /Users/adrian/.local/share/virtualenvs/project1-2AECiQAe/bin/activate adrian@xxxMacBook-Pro project1 % . /Users/adrian/.local/share/virtualenvs/project1-2AECiQAe/bin/activate (project1) adrian@xxxMacBook-Pro project1 % pip3 list Package Version ---------- ------- pip 20.2.1 //此時該虛擬環境沒有django setuptools 49.2.1 wheel 0.34.2 (project1) adrian@xxxMacBook-Pro project1 % pip3 install django==2.2.15 Collecting django==2.2.15 Using cached Django-2.2.15-py3-none-any.whl (7.5 MB) //我之前裝過,有緩存,直接二次利用了 Collecting pytz Using cached pytz-2020.1-py2.py3-none-any.whl (510 kB) Collecting sqlparse>=0.2.2 Using cached sqlparse-0.3.1-py2.py3-none-any.whl (40 kB) Installing collected packages: pytz, sqlparse, django Successfully installed django-2.2.15 pytz-2020.1 sqlparse-0.3.1 (project1) adrian@xxxMacBook-Pro project1 % pip3 list Package Version ---------- ------- Django 2.2.15 // 再次查看,顯示了安裝好的版本 pip 20.2.1 pytz 2020.1 setuptools 49.2.1 sqlparse 0.3.1 wheel 0.34.2 (project1) adrian@xxxMacBook-Pro project1 % exit adrian@xxxMacBook-Pro project1 %
4. 創建django項目
adrian@xxxMacBook-Pro project1 % pipenv run django-admin startproject blogproject
5. 創建應用
adrian@xxxMacBook-Pro project1 % cd blogproject adrian@xxxMacBook-Pro blogproject % ls -l total 8 drwxr-xr-x 6 adrian staff 192 8 11 13:14 blogproject -rwxr-xr-x 1 adrian staff 631 8 11 13:14 manage.py adrian@xxxMacBook-Pro blogproject % pipenv run python3 manage.py startapp blog adrian@xxxMacBook-Pro blogproject % ls -l total 8 drwxr-xr-x 9 adrian staff 288 8 11 13:18 blog // 應用創建好了 drwxr-xr-x 6 adrian staff 192 8 11 13:14 blogproject -rwxr-xr-x 1 adrian staff 631 8 11 13:14 manage.py
6. 查看文件結構
adrian@xxxMacBook-Pro blogproject % tree
.
├── blog
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── blogproject
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
7. 用pycharm打開該django項目

8. 添加解釋器(點擊右側齒輪按鈕添加)

9. 找到對應的解釋器后,系統自動加載出虛擬環境中的包及其版本號

接下來就可以愉快的使用pycharm完善django項目了...
