オフライン導入Djangoプロジェクトをネットワーク環境なしに移行

3373 ワード

既存の環境
  • CentOS 6
  • Python 3
  • Django 1.11

  • 主に次の3つのコマンドを使用します.
    #     
    pip freeze > requirements.txt  
    #          
     pip download -d packagesDir -r requirements.txt     
    #      
    whl 、tgz 
       、     
    pip install --no-index --find-links="packages_dir" -r requirements.txt
    

    事前準備
    (1)requirements.txt依存ファイルpip freeeze > requirements.txt(2)オフラインパケットダウンロード(ピットあり)ダウンロードコマンド:pip download -d /dir/of/packagesDir -r requirements.txt注意、次の2つはとても肝心です!!!
  • プラットフォームに注意してください.windowsがオフラインでダウンロードしたオフラインパッケージはwindowsにのみ適用されます.macOS、Linuxも同じです.
  • CentOS 6とCentOS 7も違います.前者がダウンロードしたオフラインパッケージも後者には適用されません.そうしないと、オフラインインストール時にエラーが発生します.

  • 上の2点に対応してから、オフラインパッケージをダウンロードし、イントラネットマシンに移行します.
    オフラインホストインストールPython 3
    システムはPython 2を持っているからです.6ですが、Python 3をインストールするには適用され、Python 2をインストールすることはできません.
    Python 3をインストールし、コマンドpython3 manage.py runserverを適用すると、一連の問題が発生します.そこでpyenvツールを用いて異なるPython解釈器を取り付け,ここではPython 3を取り付ける.
    ここでは、pyenvを使用してPython 3がインストールされていると仮定するpyenvのインストール手順をスキップする.
    オフラインパッケージのインストール
    オフラインパッケージ所在ディレクトリ:offlinePackagesインストールコマンド:pip install --no-index --find-links="offlinePackages" -r requirements.txtプロジェクトに必要なオフラインパッケージのインストールが完了し、django-adminのようなコマンドを正常に使用できます.最後に、djangoのプロファイルなど、データベースパスワードホストipなどを変更する必要があります.
    その他
  • はvenv仮想ディレクトリを一括パッケージ化しようと試みたが、source /venv/bin/activeは役に立たず、上記の方法で問題を解決した.
  • には必ずPython解釈器が存在しなければなりません.そうしないと、仮想ディレクトリがアクティブになっても使えません.

  • 添付:pyenvをオフラインでインストールする方法
    ネットのホストの上で先にダウンロードします
    1、このコマンドを使用するのは主にサボって、便利で使いやすい:curl https://pyenv.sh | bash、このステップは.pyenvディレクトリ、つまりpyenvツールのディレクトリを得て、それからこのディレクトリをパッケージして、そしてネットのないホストに移行する必要があります.
    2、それともネットホスト上にpyenvの環境変数を書き込むか:
        $ echo 'export PYENV_ROOT="$HOME/.pyenv"'>> ~/.bashrc     #          ,   Bash Shell    
        $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"'>> ~/.bashrc
        $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
    

    3、欲しいPythonバージョンをインストールする.例えば3.6.5:
     pyenv install 3.6.5
    

    エラーが発生した場合は、システムレベルの依存関係がインストールされていない場合は、次のように試してみてください(Pythonの依存関係がインストールされています).
    yum -y install zlib zlib-devel
    yum -y install bzip2 bzip2-devel
    yum -y install ncurses ncurses-devel
    yum -y install readline readline-devel
    yum -y install openssl openssl-devel
    yum -y install openssl-static
    yum -y install xz lzma xz-devel
    yum -y install sqlite sqlite-devel
    yum -y install gdbm gdbm-devel
    yum -y install tk tk-devel
    yum -y install gcc
    

    4、インストールに成功した後、pyenvのディレクトリ:tar -czf pyenv.tgz .pyenvをパッケージ化し、ネットワークレスホストにアップロードしてインストールします.注意pyenv環境変数を合わせてください.
    (ここまで書くと、別の考え方でオフラインでインストールできることに気づきました.pyenvがインストールされたら、あなたが望むPythonバージョンに直接切り替えます.このときpipも切り替えに対応します.このときpipを使ってrequiremans.txtの中のパッケージを直接インストールします.これらのパッケージはすべて.pyenvディレクトリの下にインストールされているからです.そして、直接パッケージを無網機械にアップロードします.しかし、このような欠点があります.ポイントは、事前にインストールされたパッケージがグローバルであり、その後に新しい、別のバージョンのパッケージがインストールされると混乱するため、現在のpyenvが固定されたパッケージバージョンを使用していることを確認する必要があります.
    後患のないやり方は:1、pyenvを使ってPythonバージョンを切り替える;2、仮想ディレクトリを作成する;3、仮想ディレクトリをアクティブ化する;4、オフラインパッケージを取り付ける——この時、オフラインパッケージこそ隔離された環境に取り付けられ、局所的なパッケージでもある.
    )