Python | Django应该安装在项目目录还是全局安装❓️

目录

🚫 为什么不建议全局安装?

✅ 为什么推荐使用虚拟环境?

🛠️ 如何操作?(标准流程)

💎 总 结

🧗 番外:如何查看django是否安装成功?


强烈建议将 Django 安装在项目的虚拟环境(Virtual Environment)中,而不是全局安装。

简单来说,就是为每一个 Django 项目创建一个独立的“Python 小环境”,Django 和所有相关包都安装在这个小环境里。

这就像为每个工程项目准备一个独立的工具箱,而不是把所有工具都混在一个大箱子里。官方文档也明确指出这是最佳实践。

🚫 为什么不建议全局安装?

全局安装(即直接使用 pip install django)会带来一系列问题:

  • 项目间冲突:不同项目可能需要不同版本的 Django。全局安装意味着所有项目共用同一个版本,升级一个项目可能导致另一个项目崩溃。

  • 权限与安全风险:全局安装有时需要管理员权限(sudo),这可能带来不必要的安全风险。

  • 依赖管理混乱:随着项目增多,全局环境中的包会越来越多,难以追踪每个项目具体依赖了哪些包。

✅ 为什么推荐使用虚拟环境?

使用虚拟环境是 Python 开发社区的共识,好处非常明显:

  1. 项目隔离:每个项目拥有独立的 Python 运行环境和依赖包,完美解决版本冲突问题。

  2. 权限安全:在虚拟环境中安装包无需管理员权限,更加安全。

  3. 依赖清晰:通过 pip freeze > requirements.txt 可以轻松导出项目的确切依赖列表,方便部署和协作。

🛠️ 如何操作?(标准流程)

最推荐使用 Python 自带的 venv 模块,简单可靠。

1、创建项目目录并进入

mkdir my_django_project
cd my_django_project

2、创建虚拟环境

python -m venv venv

这会在当前目录下创建一个名为 venv 的文件夹,里面就是独立的 Python 环境。

3、激活虚拟环境

激活后,终端提示符前会出现 (venv) 字样。

☑ Windows:

venv\Scripts\activate

 ☑ macOS / Linux:

source venv/bin/activate

❗️ 注:如何激活虚拟环境

项目根目录(即包含 venv 文件夹的目录)下运行激活命令。

不要进入 venv\Scripts 目录再运行,原因如下:

❶ 正确的操作路径

假设你的项目结构是:

my_django_project/    <-- 这是项目根目录
├── venv/             <-- 虚拟环境文件夹
├── manage.py         (创建项目后才有)
└── myproject/        (创建项目后才有)

激活命令应在 my_django_project/ 下执行

# Windows
venv\Scripts\activate

# macOS/Linux
source venv/bin/activate

❷ 为什么不进入 Scripts 目录?

  • activate 脚本本身位于 venv\Scripts\(Windows)或 venv/bin/(Unix),但激活操作会修改当前 shell 的环境变量,必须从项目根目录执行才能正确生效。

  • 如果先 cd venv\Scripts 再运行 activate,虽然脚本会执行,但你的命令行当前路径会停留在 Scripts 文件夹里。之后你安装包或运行 python manage.py 时,会因为路径不对而报错(比如找不到 manage.py)。

❸ 简便验证方法

激活成功的标志是命令行提示符前面出现 (venv)

(venv) C:\Users\YourName\my_django_project>

看到 (venv) 前缀,就说明一切正常,可以继续运行 pip install django 或 python manage.py runserver 了。

记住这个原则:在项目根目录执行所有 venv 相关的操作,保持路径清晰。😊

4、在虚拟环境中安装 Django

pip install django

现在,Django 只安装在了这个项目的虚拟环境中。

5、创建 Django 项目

Django类似于脚手架,可以通过命令生成项目包,命令:django-admin startproject 包名

django-admin startproject myproject .

注意命令末尾的 .,它表示将项目创建在当前目录,而不是再新建一个嵌套文件夹。

❗️ 注:django-admin startproject myproject 后加“.”和不加“.”的区别

这两个命令的核心区别在于项目目录的创建位置以及‌生成的文件结构

☀ ‌django-admin startproject myproject(不带点)

  • 会在当前目录下‌新建一个名为 `myproject` 的文件夹。
  • 所有的项目文件(包括 `manage.py` 和内部的 `myproject` 配置包)都会在这个新文件夹内。
  • 目录结构为:`当前目录/myproject/manage.py` 和 `当前目录/myproject/myproject/`。
  • 这是默认行为,适用于大多数情况,能保持当前目录整洁 。‌‌

☀ django-admin startproject myproject .(带点)

  • 其中的 “.” 代表‌当前目录
  • 它会将项目文件‌直接创建在当前目录下,不再额外嵌套一层 myproject 文件夹。
  • manage.py和配置包 myproject 会直接出现在你执行命令的文件夹中。
  • 目录结构为:当前目录/manage.py 和 当前目录/myproject/`。
  • 这种用法通常用于当你已经创建了一个空文件夹并进入其中,希望将当前文件夹直接初始化为 Django 项目根目录时 。‌‌

‌总结建议:如果你在当前空文件夹中想直接初始化项目,使用带点的命令;如果在现有目录下想新建一个独立的项目文件夹,使用不带点的命令。

❻ 启动创建的 django 项目

启动命令:必须在项目目录下,执行命令

py manage.py runserver

在浏览器中访问:http://127.0.0.1:8000/

💎 总 结

对于 Django 开发,“虚拟环境 + 项目内安装”是必须遵循的铁律。它为你的项目提供了清洁、隔离、安全的环境,是专业开发的基础。

除了基础的 venv,你以后还可能接触到更高级的依赖管理工具,如 pipenv或 poetry,但它们管理项目依赖的核心思想与虚拟环境是一致的。


🧗 番外:如何查看django是否安装成功?

要确认 Django 是否安装成功,最可靠的方法是在**命令行**中执行检查。这里有三种常用的方法,按推荐程度排序:

方法一:在命令行中查看版本(最直接,推荐),即使用 django --version 命令(推荐)

❶ 确保你已激活虚拟环境: 在项目根目录下,确保命令行提示符前有 (venv) 字样。这是检查的前提,否则可能看到的是全局安装的版本(如果有的话)。

❷ 运行检查命令: 激活虚拟环境后, 在命令行中输入以下命令并回车:

python -m django --version

若安装成功,将输出类似 6.0.7 的版本号;若未安装,则提示 No module named django

注:除使用python -m django --version命令还可以使用 django-admin --version 命令。

激活虚拟环境后,在命令行中输入以下命令并回车

django-admin --version

或者,如果你使用的是`django-admin.py`(在某些老版本的Django中),你可以使用:

django-admin.py --version

方法二:进入 Python 交互环境检查(更详细),即使用Python代码

你还可以在Python解释器中导入Django并使用get_version函数来查看版本。这个方法能让你看到 Django 的安装路径,便于排查问题。

❶ 确保已激活虚拟环境,然后在命令行中输入 `python` 并回车,进入 Python 交互式解释器。

❷ 依次输入以下两行代码:

import django
print(django.get_version())

如果安装成功,这段代码会打印出Django的版本号;否则会报 ModuleNotFoundError: No module named 'django' 的错误。

方法三:运行 Django 项目验证(实体验证)

如果你已经创建了一个 Django 项目(即有 `manage.py` 文件),可以尝试运行开发服务器。

1. 在项目根目录(`manage.py` 所在位置)下,执行:

python manage.py runserver

2. 如果安装成功,你会看到类似下面的输出,并且可以通过浏览器访问 `http://127.0.0.1:8000/` 看到 Django 的欢迎页面。

Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
...
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

方法四:使用 pip show 查看包详情

如果你想要查看所有已安装的Django包(包括版本)的列表,可以使用pip命令。这个命令会显示关于Django包的详细信息,包括版本号。

运行以下命令查看 Django 包的安装信息:

pip show django

成功时会显示完整元数据,包括:

  • Name‌: Django
  • Version‌: 5.1
  • Location‌: C:\myproject\venv\Lib\site-packages
  • Requires‌: pytz, sqlparse, asgiref, typing-extensions

若无输出,说明未安装。

方法四:使用Python的`pkg_resources`模块

另一种方法是使用`pkg_resources`模块来检查Django是否已安装:

import pkg_resources

try:
    pkg_resources.get_distribution("django")
    print("Django is installed.")
except pkg_resources.DistributionNotFound:
    print("Django is not installed.")

这段代码尝试获取`django`包的分布信息。如果成功,说明Django已安装;如果抛出`DistributionNotFound`异常,说明未安装。

如果 `python -m django --version` 这个命令能正常输出版本号,就说明安装已经成功了。你可以直接开始创建项目了。如果遇到报错,请检查是否忘记了激活虚拟环境。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

儒雅的烤地瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值