ERPNext遠端開發環境配置方法

blank

ERPNext遠端開發環境配置方法

前言

同志們,燒友們,ERPNext遠端開發調試如何配置的文檔,截止到2021/01/29日前,在WWW上沒有啊,不管是國外網站、國內網站,我是沒有找到,找得頭暈眼花也沒有啊,翻牆也不知道行不行,這是斐浦公司花了兩天時間啃出來的,屬於原創啊,開發的老弟、小弟們,興奮吧,開發效率、性能大幅提升啊,隨便單步進啊出啊,這個研究的哥們有貢獻啊,拿磚頭炸他,暈,錯了,是鮮花鮮花,來來來......

背景

  1. 本文集成開發環境:採用Pycharm專業版,版本為2018.3.2 X64;
  2. 關於Pycharm如何安裝和獲取許可,去百度吧,百度不出來就是菜鳥啊,罵我你也是菜鳥,管不了你了。
  3. 下文介面截圖其它版本略有差異;
  4. Pycharm專業版:專業、高效;
  5. Ubuntu+Pycharm+ERPNext不足

如果在Ubuntu環境安裝Pycharm開發環境,對開發環境配置要求挺高:

  • Ubuntu圖形環境對記憶體要求要比純字元介面的要高很多;
  • ERPNext12、13:建議最低記憶體2-4M,13版本2M記憶體跑起來明顯不如12版本快,建議2M雲平臺伺服器升級13版本要慎重;
  • Pycharm運行起來常駐內存在600—900M之間(Windows環境看的,不能瞎說,Ubuntu環境懶得開起來看了,反正不少);

所以一運行卡呀卡呀;

另外Ubuntu環境開發,上網、QQ、微信等等要再搞一套方便嗎? 反正我是不方便;

受不了了,就往下看吧!

遠端調試

新建專案

blank

新增ERPNext專案,目錄對應伺服器環境的Frappe用戶目錄,需要使用到伺服器的目錄如下:

/frappe/frappe-bench

/frappe/.local

遠端環境創建後會在/frappe路徑下自動生成.pycharm_helpers目錄;

稍後在/frappe路徑下創建pycharm_debug目錄;

暫時記錄這些,以後再安裝時再修正調整;

伺服器上需要安裝外掛程式:pydevd(pydevd-pycharm這個不裝,根據Pycharm版本)

稀里糊塗幾個參考文檔一頓亂搞,反正搞出來了,不確定哪些步驟有冗餘,有時間需要重裝時再確認;

blank

在本地創建F:Frappe,(本地路徑需要從伺服器同步下來,最好與伺服器一樣,都這麼說,就這麼照做)

遠端伺服器

  • 創建SFTP

選擇Tools--Deployment—Configuration

不同Pycharm版本有點差異,知道意思找到就行;

blank

點擊"+",選擇SFTP

blank

創建新的伺服器名:ERPNext13

blank

在下圖輸入:伺服器位址、安裝ERPNext的使用者名和密碼,勾選保存密碼,點擊測試連接,如果連接成功,自動獲取該用戶路徑/home/frappe,

Web Server URL的埠號沒有特意規定好像,隨便來一個;

SSH埠號根據伺服器安裝時填寫:22或修改後的3022

blank

如下圖路徑對應:

blank

如下圖剔除伺服器不需同步的路徑:(下圖路徑只是舉例)

blank

以上設置完畢,保存應用后,就可以查看伺服器訊息;

  • 查看遠端伺服器

Tools--Deployment--Browse Remote Host就可以看到你遠端主機的訊息

blank
blank

遠端python

Files——Settings——Python Interpreter------Project:Frappe

選擇SSH Interpreter

blank
blank

在下圖Project Interpreter后,點擊

,選擇Add

blank

選擇SSH Interpreter,選擇Existing server configuration,選擇剛創建的SFTP:ERPNext13

blank

點擊

blank

點擊完成後,自動創建一個ERPNext13的SFTP拷貝配置,見下圖:

blank

下一步,見下圖,取消自動同步(根據個人習慣決定是否取消)

blank

點擊上圖資料夾圖示,設置同步目錄;

blank

同步目錄創建如下,建議伺服器路徑選/home/frappe,別選

/home/frappe/frappe-bench

blank

前兩步設置完見下圖:

blank

選擇伺服器端python版本:/home/frappe/frappe-bench/env/bin/python3

這個python3,根據自己安裝ERPNext環境時python3.6(python3以上版本,這裡只是舉例)版本的名稱,設置完如下圖:

blank

以上步驟設置保存完畢後見下圖,會顯示伺服器端python環境外掛程式的版本號,點擊OK保存就可以了;

blank

配置終端編碼

設定編寫代碼格式:

File——Settings——Tools——SSH Terminal——Default encoding改為utf-8,

修改Connection settings為SSH configuration,並下拉選擇剛才創建的SFTP拷貝(其實不是拷貝也一樣,因為配置一樣的)。

blank
blank

配置檔編碼

File——Settings——Editor------File Encodings

改為utf-8

blank

自動上傳

設置是否自動同步:Tools->Deployment->Options

blank

自動上傳有變更的代碼到伺服器選擇:Always,根據自己喜好選擇

blank

Pycharm_debug包

解壓C:Program FilesJetBrainsPyCharm 2018.3.2debug-eggspycharm-debug-py3k.egg檔到f:Frappepycharm_debug

pycharm-debug.egg對應python2;

pycharm-debug-py3k.egg對應python3;

ERPNext12、13版本均採用python3;

blank

同步f:Frappepycharm_debug到伺服器;

備註:

沒有使用下列方法安裝伺服器pycharm-debug:

1)用easy_install pycharm-debug-py3k.egg報錯;

sudo easy_install pycharm-debug-py3k.egg

Debug配置

如下圖,添加Debug配置:

blank

點擊"+"

blank

選擇Python RemoteDebug,不同Pycharm版本有差別

見下圖

blank

Name:ERPNext13_debug

伺服器位址、埠、路徑參考下圖:

blank

點擊OK保存

安裝pydevd

sudo pip install pydevd

blank

在專案主py檔裡新增:

import pydevd

pydevd.settrace('192.168.18.6', port=8000, stdoutToServer=True, stderrToServer=True)

說明:

沒有用pydevd-pycharm,應該是版本不同,安裝的包不同,Pycharm2018里提示的代碼是pydevd

sudo pip install pydevd-pycharm

創建遠端連接檔

在F:Frappe目錄下創建 PycharmRemoteDebug.py

PycharmRemoteDebug.py

import sys
sys.path.append('./pycharm_debug')import pydevdif __name__ != '__main__': pydevd.settrace('192.168.18.6',port=8000, stdoutToServer = True, stderrToServer = True, suspend = False)

這個文件是關鍵,必須要啊;

這裡需要添加解壓上傳到伺服器的pycharm_debug包路徑;

創建測試檔

在F:Frappe目錄下創建 Main.py

Main.py

import sys
sys.path.append('./pycharm_debug')import pydevdif __name__ != '__main__': pydevd.settrace('192.168.18.6',port=8000, stdoutToServer = True, stderrToServer = True, suspend = False)

設置斷點

設定端點:

blank

啟動debug

參考下圖,啟動debug:選擇ERPNext13_debug,點小蟲子

blank

終端視窗顯示等待,見下圖:

blank

運行代碼

在伺服器終端視窗運行代碼,如下圖:

Python3 Main.py

運行完就是停住狀態,參考以下兩圖

blank

blank

查看視窗

再看Pycharm調試窗口,參考如下:

blank

ERPNext遠端

  • 遠端同步

手動同步一下目錄:

/frappe/frappe-bench

/frappe/.local

/frappe/pycharm_debug

/frappe/Main.py(這個就是測試用,用完刪)

/frappe/PycharmRemoteDebug.py(這個文件以後挪個地方)

下圖目錄是否要同步,不知道是否必須,自己試,我是同步下來了,以後再確認,先能跑起來;

  • 修改honcho

拷貝一個honche,新名為honcho_debug

新增以下兩行:

sys.path.append('/home/frappe')

import PycharmRemoteDebug

  • 設置端點

參考前文

  • 啟動debug

同上

  • 啟動ERPNext服務

cd ~/frappe-bench

bench start

回到調試視窗即可單步跟蹤了;

blank

本機調試

以下三個方法是官網論壇上的,沒有驗證過,因為我用不到;

本機就不用解釋了吧;

配置方法一

Configuration:

script: /home/frappe/.local/bin/honcho

Parameters: start

Environment Variables: PYTHONUNBUFFERED=1

Working directory: /home/frappe/frappe-bench

√add content roots to PYTHONPATH

√add source roots to PYTHONPATH

√Emulate terminal in output console

Tips:

使用下面命令可以啟動服務

cd frappe-bench

~/.local/bin/honcho start

bench start

這兩條命令都可以啟動服務;

配置方法二

In my pycharm I do this:

Start a Python Project

In Run/Debug configurations, I add: a Python Deftault...

On a new Python configuration:

Script: /usr/local/bin/bench,這個路徑下沒有bench,可能使用easy_install方式安裝的才有

Script parameters: start

Working directory: /Users/fellipeh/Developer/python/frappe/frappe-bench

Don’t forget to set the correct virtualenv on PyCharm Configuration... set the “env” folder on frappe-bench directory.

blank

blank

配置方法三

script: /home/fuekor/frappe-bench/env/bin/frappe,這個路徑下沒有frappe

script parameters: site1.local --port=8000 --serve_test

Environment Variables: PYTHONUNBUFFERED=1

python interpreter: /frappe-bench/env

working directory: /home/fuekor/frappe-bench/sites

add content path to python roots: yes

add source roots to python path: yes

聯繫方式

ERPNext中文社區QQ群:641514022

What do you think?

Written by marketer

blank

還在找好用的ERP系統? 不妨進來看看

ERP是什麼? ERP軟體有哪些?