背景说明:
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项目了...