天天看點

PyCharm+Vagrant+Django搭建過程完整版

python開發環境依賴的問題,非常影響團隊效率。

接下來的文檔介紹我們現在團隊使用的Pycharm+Vagrant部署開發環境的方式。

食用好處:

  • 環境配置簡單友善
  • 搭建好了之後,友善團隊複用,真團隊開發的好幫手

以下流程基于的搭建環境:

OS:Win10

Pycharm:2019.2.4

1.下載下傳軟體

1.1 Pycharm

1.1.1 Pycharm v2019.2.4安裝成功後,不要打開軟體,然後将激活更新檔“jetbrains-agent.jar”放在 Pycharm的bin路徑下。

PyCharm+Vagrant+Django搭建過程完整版

1.1.2 打開 pycharm64.exe.vmoptions 後,如下圖:

如果是預設安裝的,在文檔的最後面加上:

-javaagent:C:\Program Files\JetBrains\PyCharm 2019.2.4\bin\jetbrains-agent.jar

如果不是,則填pycharm64.exe所在位置,然後[Ctrl + S]儲存檔案

1.1.3 Pycharm已注冊

PyCharm+Vagrant+Django搭建過程完整版

1.2 Virtualbox

免費又輕量的虛拟化軟體

下載下傳最新版安裝即可

1.3 Vagrant

1.3.1 安裝最新版本Vagrant

Vagrant下載下傳位址

成功安裝:指令行輸入

vagrant -v

,輸出vagrant版本資訊,輸出其他資訊,則失敗

1.3.2 下載下傳CentOS7鏡像:

CentOS-7-x86_64-Vagrant-1907_01.VirtualBox.box

  • 下載下傳box檔案:CentOS-7-x86_64-Vagrant-1907_01.VirtualBox.box國内源下載下傳位址
  • 指令行進入下載下傳檔案夾
  • vagrant box add BoxName CentOS-7-x86_64-Vagrant-1907_01.VirtualBox.box

    PyCharm+Vagrant+Django搭建過程完整版

    BoxName

    為自定義鏡像名字,這裡我設定的名字為

    centos7

Vargant的使用參考:Vargrant Docs

2. 初始化項目

2.1 初始化生成Vagrantfile

  • Tools

    ->

    Vagrant

    ->

    Init in Project Root

    PyCharm+Vagrant+Django搭建過程完整版
  • Pycharm

    彈框中選擇剛添加的

    BoxName

    ,此時項目根目錄下會出現一個名叫

    Vagrantfile

    的配置檔案
  • 修改

    Vagrantfile

#對應`Vagrant`添加的box,即1.3.2 中設定的`BoxName`
config.vm.box = "centos7"  
#通過端口映射來通路Vagrant内的Django開發伺服器
#将本機的80端口映射到虛拟機的8080端口
config.vm.network "forwarded_port", guest: 8080, host: 80, host_ip: "192.168.5.99"

#設定同步目錄和排除檔案規則
config.vm.synced_folder "../neo-plateform", "/vagrant_data"
rsync__verbose = true,
rsync__exclude = ['.git*', 'node_modules*','*.log','*.box','Vagrantfile']

#安裝軟體和修改配置
  config.vm.provision "shell", inline: <<-SHELL
    sudo yum install -y python36 python36-devel python36-pip \
    libtiff-devel libjpeg-devel libzip-devel freetype-devel \
    lcms2-devel libwebp-devel tcl-devel tk-devel sshpass \
    openldap-devel mariadb-devel mysql-devel libffi-devel \
    openssh-clients telnet openldap-clients gcc
    
    mkdir /root/.pip
    cat << EOF | sudo tee /root/.pip/pip.conf
    [global]
    timeout = 6000
    index-url = https://mirrors.aliyun.com/pypi/simple/

    [install]
    use-mirrors = true
    mirrors = https://mirrors.aliyun.com/pypi/simple/
    trusted-host=mirrors.aliyun.com

#注意,EOF前面必須沒有空格 
EOF

    mkdir /home/vagrant/.pip
    cat << EOF | sudo tee /home/vagrant/.pip/pip.conf
    [global]
    timeout = 6000
    index-url = https://mirrors.aliyun.com/pypi/simple/
    
    [install]
    use-mirrors = true
    mirrors = https://mirrors.aliyun.com/pypi/simple/
    trusted-host=mirrors.aliyun.com

EOF
SHELL
           

Vagrantfile官方說明文檔

  • 由于vagrant同步檔案夾有bug,不能實時同步,是以每次虛拟機重新開機之前,都需要确認一下配置

    打開位于項目檔案夾下的.vagrant/machines/default/virtualbox/synced_fllders檔案

    PyCharm+Vagrant+Django搭建過程完整版
    确認

    virtualbox

    對應的value裡“/vagrant”都改為了“/vagrant_data”,
    PyCharm+Vagrant+Django搭建過程完整版
  • 啟動Vagrant
    PyCharm+Vagrant+Django搭建過程完整版
    啟動成功之後可以在VirtualBox裡看到
    PyCharm+Vagrant+Django搭建過程完整版
  • 連接配接到Vagrant虛拟機
    PyCharm+Vagrant+Django搭建過程完整版
  • 測試修改檔案後,是否同步成功

    測試

    D:/HRG/GitDevops/neo-plateform

    修改後,

    /vagrant_data

    是否改變

    測試

    /vagrant_data

    修改後,

    D:/HRG/GitDevops/neo-plateform

    是否改變
  • 選擇目前目錄下的位址,進入虛拟機
  • 安裝依賴庫

    進入

    /vagrant_data

    ,執行

    pip3 install –r requirements.txt

    PyCharm+Vagrant+Django搭建過程完整版
  • Pycharn切換python解釋器至Vagrant虛拟機内的解釋器

    File -> Settings -> Project YourProjectName -> Project Interpreter -> Add -> Vagrant -> Vagrant Instance Fold && Python interpreter path

Vagrant選項中的python路徑設定到Vagrant虛拟機内python3.6二進制的全路徑

PyCharm+Vagrant+Django搭建過程完整版

至此開發環境搭建完成

3. 運作Django web伺服器

  • 3.1 修改運作配置,運作的host位址為0.0.0.0, 端口為8080,并且確定使用了vagrant虛拟機内的python解釋器
    PyCharm+Vagrant+Django搭建過程完整版
  • 3.2 保證端口轉發設定正确

    確定

    Vagrantfile

    的host配置和3.1中配置一緻
config.vm.network "forwarded_port", guest: 8080, host: 8080, host_ip: "192.168.5.99"
           
  • 3.3 啟動

    Vagrant

    已經啟動過了的,不需要重新啟動
    PyCharm+Vagrant+Django搭建過程完整版
  • 3.4 運作

    django web

    伺服器
    PyCharm+Vagrant+Django搭建過程完整版
    或者
    PyCharm+Vagrant+Django搭建過程完整版
  • 3.5啟動成功之後,在本機上調用位址+端口即可通路Django程式

4. 使用

在這樣的一個環境下,你建立的所有 Python 項目檔案,都會被同步到 Vagrant 虛拟機中的

/vagrant_data/

目錄下,你在本地運作 Python 項目,其實都是在 Vagrant 虛拟機中運作。

如果你的 Python 項目運作需要依賴很多的元件 ,那完全可以将這些元件全部安裝在這個 Vagrant 虛拟機中,打包成鏡像,然後把這個鏡像和項目(包括 .vagrant 檔案夾 和 Vagrantfile)發給你的同僚,他們就能很快的也擁有一套可以穩定運作的項目運作環境。

5.常見問題和解決方案

  • pip安裝依賴庫失敗:檢查pip是否最新,不是則更新pip
  • Django在Vagrant虛拟環境裡正常啟動,但無法在本機裡調用接口:檢查Vagrantfile中的端口映射是否正确

附錄:

中國大陸開源鏡像站彙總

Pycharm+Vagrant安裝包百度雲下載下傳連結

提取碼:x3x2