Conda离线部署django

要在没有网络连接的环境中使用conda部署Django,你需要预先在有网络连接的机器上创建一个包含所有必要包的环境,并导出该环境的配置文件。然后,你可以将这个配置文件和必要的包传输到目标机器上进行安装。

下面是详细的步骤:

1. 在线环境准备

创建一个包含Django的conda环境

首先,在有网络连接的机器上创建一个新的conda环境,并安装Django及其依赖。

bash 复制代码
conda create -n my_django_env python=3.10.6
conda activate my_django_env
conda install django

这里假设你想要使用Python 3.9版本来安装Django。

python 复制代码
(base) PS E:\RomulusHe\Projects\NUDD\DjangoProDemo-followup> conda create --name nudd-env python=3.10.6
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
  current version: 4.10.3
  latest version: 24.7.1

Please update conda by running

    $ conda update -n base -c defaults conda



## Package Plan ##

  environment location: E:\Anaconda\envs\nudd-env

  added / updated specs:
    - python=3.10.6


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    bzip2-1.0.8                |       h2bbff1b_6          90 KB  defaults
    ca-certificates-2024.7.2   |       haa95532_0         128 KB  defaults
    libffi-3.4.4               |       hd77b12b_1         122 KB  defaults
    openssl-1.1.1w             |       h2bbff1b_0         5.5 MB  defaults
    pip-24.2                   |  py310haa95532_0         2.5 MB  defaults
    python-3.10.6              |       hbb2ffb3_1        13.8 MB  defaults
    setuptools-72.1.0          |  py310haa95532_0         2.5 MB  defaults
    sqlite-3.45.3              |       h2bbff1b_0         973 KB  defaults
    tk-8.6.14                  |       h0416ee5_0         3.5 MB  defaults
    tzdata-2024a               |       h04d1e81_0         116 KB  defaults
    vc-14.40                   |       h2eaa2aa_0          10 KB  defaults
    vs2015_runtime-14.40.33807 |       h98bb1dd_0         1.3 MB  defaults
    wheel-0.43.0               |  py310haa95532_0         136 KB  defaults
    xz-5.4.6                   |       h8cc25b3_1         609 KB  defaults
    zlib-1.2.13                |       h8cc25b3_1         131 KB  defaults
    ------------------------------------------------------------
                                           Total:        31.3 MB

The following NEW packages will be INSTALLED:

  bzip2              pkgs/main/win-64::bzip2-1.0.8-h2bbff1b_6
  ca-certificates    pkgs/main/win-64::ca-certificates-2024.7.2-haa95532_0
  libffi             pkgs/main/win-64::libffi-3.4.4-hd77b12b_1
  openssl            pkgs/main/win-64::openssl-1.1.1w-h2bbff1b_0
  pip                pkgs/main/win-64::pip-24.2-py310haa95532_0
  python             pkgs/main/win-64::python-3.10.6-hbb2ffb3_1
  setuptools         pkgs/main/win-64::setuptools-72.1.0-py310haa95532_0
  sqlite             pkgs/main/win-64::sqlite-3.45.3-h2bbff1b_0
  tk                 pkgs/main/win-64::tk-8.6.14-h0416ee5_0
  tzdata             pkgs/main/noarch::tzdata-2024a-h04d1e81_0
  vc                 pkgs/main/win-64::vc-14.40-h2eaa2aa_0
  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.40.33807-h98bb1dd_0
  wheel              pkgs/main/win-64::wheel-0.43.0-py310haa95532_0
  xz                 pkgs/main/win-64::xz-5.4.6-h8cc25b3_1
  zlib               pkgs/main/win-64::zlib-1.2.13-h8cc25b3_1


Proceed ([y]/n)? y


Downloading and Extracting Packages
vs2015_runtime-14.40 | 1.3 MB    | ################################################################################################################# | 100%
xz-5.4.6             | 609 KB    | ################################################################################################################# | 100%
zlib-1.2.13          | 131 KB    | ################################################################################################################# | 100%
python-3.10.6        | 13.8 MB   | ################################################################################################################# | 100%
wheel-0.43.0         | 136 KB    | ################################################################################################################# | 100%
sqlite-3.45.3        | 973 KB    | ################################################################################################################# | 100%
tzdata-2024a         | 116 KB    | ################################################################################################################# | 100%
bzip2-1.0.8          | 90 KB     | ################################################################################################################# | 100%
vc-14.40             | 10 KB     | ################################################################################################################# | 100%
pip-24.2             | 2.5 MB    | ################################################################################################################# | 100%
openssl-1.1.1w       | 5.5 MB    | ################################################################################################################# | 100%
setuptools-72.1.0    | 2.5 MB    | ################################################################################################################# | 100%
tk-8.6.14            | 3.5 MB    | ################################################################################################################# | 100%
ca-certificates-2024 | 128 KB    | ################################################################################################################# | 100%
libffi-3.4.4         | 122 KB    | ################################################################################################################# | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate nudd-env
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) PS E:\RomulusHe\Projects\NUDD\DjangoProDemo-followup>

依赖路径

py 复制代码
environment location: E:\Anaconda\envs\nudd-env
python 复制代码
conda activate nudd-env
conda deactivate
检查原环境
py 复制代码
(base) PS E:\RomulusHe\Projects\NUDD\DjangoProDemo-followup> conda activate nudd-env
(nudd-env) PS E:\RomulusHe\Projects\NUDD\DjangoProDemo-followup>
(nudd-env) PS E:\RomulusHe\Projects\NUDD\DjangoProDemo-followup> pip list
Package    Version
---------- -------
pip        24.2
setuptools 72.1.0
wheel      0.43.0
(nudd-env) PS E:\RomulusHe\Projects\NUDD\DjangoProDemo-followup>  python
Python 3.10.6 | packaged by conda-forge | (main, Oct 24 2022, 16:02:16) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(nudd-env) PS E:\RomulusHe\Projects\NUDD\DjangoProDemo-followup>

我需要安装的包如下,这些都是自己整理的.对比上面的结果,会发现还缺很多包,所以需要一个个安装了:

py 复制代码
Name: Django
Version: 5.0.6
Requires: asgiref, sqlparse, tzdata
Required-by: #N/A

Name: asgiref
Version: 3.8.1
Requires: typing-extensions
Required-by: #N/A

Name: sqlparse
Version: 0.5.0
Requires:
Required-by: #N/A

Name: tzdata
Version: 2023.3
Requires:
Required-by: #N/A

Name: typing_extensions
Version: 4.7.1
Requires:
Required-by: #N/A

Name: PyMySQL
Version: 1.1.1
Requires:
Required-by: #N/A

Name: pandas
Version: 2.1.0
Requires: numpy, python-dateutil, pytz, tzdata
Required-by: #N/A

Name: numpy
Version: 1.23.5
Requires:
Required-by: #N/A

Name: python-dateutil
Version: 2.8.2
Requires: six
Required-by: #N/A

Name: six
Version: 1.16.0
Requires:
Required-by: #N/A

Name: pytz
Version: 2023.3
Requires:
Required-by: #N/A

Name: tzdata
Version: 2023.3
Requires:
Required-by: #N/A

Name: openpyxl
Version: 3.1.4
Requires: et-xmlfile
Required-by: #N/A

Name: et-xmlfile
Version: 1.1.0
Requires:
Required-by: #N/A

Name: mysqlclient
Version: 2.2.4
Requires:
Required-by: #N/A

Name: psycopg2-binary
Version: 2.9.9
Requires:
Required-by: #N/A

Name: requests
Version: 2.31.0
Requires: certifi, charset-normalizer, idna, urllib3
Required-by: #N/A

Name: certifi
Version: 2023.7.22
Requires:
Required-by: #N/A

Name: charset-normalizer
Version: 3.2.0
Requires:
Required-by: #N/A

Name: idna
Version: 3.4
Requires:
Required-by: #N/A

Name: urllib3
Version: 1.26.16
Requires:
Required-by: #N/A


Name: django-apscheduler
Version: 0.6.2
Requires: apscheduler, django
Required-by: #N/A

Name: APScheduler
Version: 3.10.4
Requires: pytz, six, tzlocal
Required-by: #N/A


Name: tzlocal
Version: 5.2
Requires: tzdata
Required-by: #N/A

安装上面的环境

py 复制代码
pip install Django
pip install PyMySQL
pip install pandas
pip install openpyxl
pip install mysqlclient
pip install psycopg2-binary
pip install requests
pip install django-apscheduler



验证一下包是否全

py 复制代码
python manage.py runserver


项目启动没有任何报错,环境OK!

导出环境的详细信息

在创建好环境后,导出该环境的详细信息,包括所有的依赖包。

bash 复制代码
conda env export > environment.yml

这会生成一个environment.yml文件,其中包含了所有已安装包的信息。

python 复制代码
name: nudd-env
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults
dependencies:
  - bzip2=1.0.8=h2bbff1b_6
  - ca-certificates=2024.7.2=haa95532_0
  - libffi=3.4.4=hd77b12b_1
  - openssl=1.1.1w=h2bbff1b_0
  - pip=24.2=py310haa95532_0
  - python=3.10.6=hbb2ffb3_1
  - setuptools=72.1.0=py310haa95532_0
  - sqlite=3.45.3=h2bbff1b_0
  - tk=8.6.14=h0416ee5_0
  - vc=14.40=h2eaa2aa_0
  - vs2015_runtime=14.40.33807=h98bb1dd_0
  - wheel=0.43.0=py310haa95532_0
  - xz=5.4.6=h8cc25b3_1
  - zlib=1.2.13=h8cc25b3_1
  - pip:
    - amqp==5.2.0
    - apscheduler==3.10.4
    - asgiref==3.8.1
    - async-timeout==4.0.3
    - billiard==4.2.0
    - celery==5.4.0
    - certifi==2024.8.30
    - charset-normalizer==3.3.2
    - click==8.1.7
    - click-didyoumean==0.3.1
    - click-plugins==1.1.1
    - click-repl==0.3.0
    - colorama==0.4.6
    - django==5.1
    - django-apscheduler==0.6.2
    - et-xmlfile==1.1.0
    - idna==3.8
    - kombu==5.4.0
    - mysqlclient==2.2.4
    - numpy==2.1.0
    - openpyxl==3.1.5
    - pandas==2.2.2
    - pika==1.3.2
    - prompt-toolkit==3.0.47
    - psycopg2-binary==2.9.9
    - pymysql==1.1.1
    - python-dateutil==2.9.0.post0
    - pytz==2024.1
    - redis==5.0.8
    - requests==2.32.3
    - six==1.16.0
    - sqlparse==0.5.1
    - typing-extensions==4.12.2
    - tzdata==2024.1
    - tzlocal==5.2
    - urllib3==2.2.2
    - vine==5.1.0
    - wcwidth==0.2.13
prefix: E:\Anaconda\envs\nudd-env

2. 下载离线包

获取所需的conda包

你需要下载所有在environment.yml中列出的包。可以使用conda pack或者手动下载这些包。

  • 使用conda pack(需要conda-build包):
py 复制代码
conda install conda-pack
py 复制代码
(nudd-env) PS E:\RomulusHe\Projects\NUDD\DjangoProDemo-followup> conda install conda-pack
Collecting package metadata (current_repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
current version: 4.10.3
latest version: 24.7.1

Please update conda by running

  $ conda update -n base -c defaults conda



## Package Plan ##

environment location: E:\Anaconda\envs\nudd-env

added / updated specs:
  - conda-pack


The following packages will be downloaded:

  package                    |            build
  ---------------------------|-----------------
  conda-pack-0.7.1           |  py310haa95532_0          73 KB  defaults
  ------------------------------------------------------------
                                         Total:          73 KB

The following NEW packages will be INSTALLED:

conda-pack         pkgs/main/win-64::conda-pack-0.7.1-py310haa95532_0


Proceed ([y]/n)? y


Downloading and Extracting Packages
conda-pack-0.7.1     | 73 KB     | ############################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(nudd-env) PS E:\RomulusHe\Projects\NUDD\DjangoProDemo-followup>

3. 打包离线包

py 复制代码
conda pack -n nudd-env
py 复制代码
(nudd-env) PS E:\RomulusHe\Projects\NUDD\DjangoProDemo-followup> conda pack -n nudd-env
Collecting packages...
Packing environment at 'E:\\Anaconda\\envs\\nudd-env' to 'nudd-env.tar.gz'
[########################################] | 100% Completed |  1min 43.3s
(nudd-env) PS E:\RomulusHe\Projects\NUDD\DjangoProDemo-followup>

4. 安装环境

在离线机器上,使用以下命令安装环境和所有包。

bash 复制代码
conda create --name my_django_env --offline --use-local --file environment.yml

如果使用了conda pack方法下载的包,你还需要指定包的位置:

bash 复制代码
conda create --name my_django_env --offline --use-local --file environment.yml --channels ./packages
简化方法(非windows系统)

将 Anaconda 安装包拷贝到机器中进行环境的安装,进行环境的配置

在 env 下创建和压缩包同名的文件夹 nudd-env

将压缩包 nudd-env.tar.gz 解压到nudd-env下面

python 复制代码
tar -xzf nudd-env.tar.gz -C nudd-env

激活该环境,将该环境添加到 conda 的虚拟环境列表中,会自动切换到虚拟环境中

python 复制代码
source nudd-env/bin/activate 

总结:

将压缩文件复制到Anaconda的虚拟环境路径下,解压缩后重新激活环境即可

5. 验证安装

激活新创建的环境,并验证Django是否正确安装。

bash 复制代码
conda activate my_django_env
python -m django --version

这应该会显示Django的版本号。

以上就是离线部署Django的整个过程。请注意,根据你的具体环境和需求,可能需要做一些调整。如果你使用的是一些特定的channel或包版本,请确保在environment.yml文件中指明。

6.其他

要执行这些任务,你可以按照以下步骤操作:

查看conda环境列表

你可以使用 conda info --envs 或者简化的 conda env list 命令来查看所有可用的conda环境:

bash 复制代码
conda info --envs
# 或者
conda env list

这将会列出所有已知的conda环境,包括它们的状态(激活或未激活)以及它们所在的路径。

退出conda环境

如果你当前处于某个conda环境中,可以通过以下命令退出当前环境回到base环境:

bash 复制代码
conda deactivate

如果默认的deactivate命令不起作用,你可以通过指定环境名来退出:

bash 复制代码
conda deactivate my_current_env

这里 my_current_env 是你当前激活的环境名称。

重命名conda环境

重命名conda环境需要先创建一个新的环境并将旧环境的内容迁移到新环境中,然后删除旧环境。具体步骤如下:

  1. 创建一个新的环境并安装所需的包:你可以创建一个新的环境,并将旧环境中所有的包安装到新的环境中。

    bash 复制代码
    conda create --name new_env_name --clone old_env_name

    这里 new_env_name 是新环境的名字,而 old_env_name 是旧环境的名字。

  2. 验证新环境:确保新环境已经正确创建,并且所有需要的包都已安装。

  3. 激活新环境

    bash 复制代码
    conda activate new_env_name
  4. 删除旧环境:如果确认无误,可以删除旧环境。

    bash 复制代码
    conda remove --name old_env_name --all

    或者使用 conda env remove 命令:

    bash 复制代码
    conda env remove --name old_env_name

请注意,上述方法并不是真正的"重命名",而是通过复制和删除的方式来达到重命名的效果。这是因为conda本身没有提供一个直接重命名环境的命令。如果你只需要更改环境的名字,并且不想重复安装所有的包,这种方法是可行的。

手动安装environment.yml的依赖包

相关推荐
Json____9 小时前
python的安装环境Miniconda(Conda 命令管理依赖配置)
开发语言·python·conda·miniconda
过期动态12 小时前
详解Python面向对象程序设计
开发语言·python·pycharm·django
Bonne journée13 小时前
SQLite数据库是什么?DB Browser for SQLite是什么?
数据库·sqlite
阿乾之铭13 小时前
通过Django 与 PostgreSQL 进行WEB开发详细流程
python·postgresql·django
春天的菠菜14 小时前
【django】Django REST Framework (DRF) 项目中实现 JWT
后端·python·django·jwt
千里码aicood17 小时前
[含文档+PPT+源码等]精品基于Python实现的django房屋出租系统的设计与实现
开发语言·python·django
啧不应该啊17 小时前
Django替换现有用户模型(auth_user)
后端·python·django
大霸王龙17 小时前
django+postgresql
数据库·后端·python·postgresql·django
东成202220 小时前
从配置anaconda到配置pycharm
开发语言·python·conda
q567315231 天前
使用 Python 编辑 XML 文件中的文本字段
xml·java·数据库·python·sqlite