天天看點

ubuntu18.04 Buildozer虛拟機配置Buildozer虛拟機配置已經搭建好的kivy環境

Buildozer虛拟機配置

  • Buildozer虛拟機配置
    • (一)虛拟機系統的注意事項
    • (二)正式開始安裝Buildozer
        • 1.基本依賴安裝
        • 2.pip3安裝buildozer和一些python庫
    • (三)正式運作buildozer進行編譯環境配置
        • 1.随便寫個kivy程式
        • 2.執行初始化和配置buildozer
          • 3.下載下傳第二階段
          • 4.下載下傳第三階段
          • 5.編譯階段
    • (四)最後下載下傳階段
  • 已經搭建好的kivy環境

Buildozer虛拟機配置

在開始之前,需要先進行系統的基礎配置,我覺得使用Vmware虛拟機+Ubuntu18.04是比較好的做法推薦使用Ubuntu 18.04 LTS Server版本,桌面版也可以,但是桌面版有一些動态庫與buildozer所需求的版本有差異,再加上Server版體積比較小,是以我最後選擇了Server版進行了安裝。

(一)虛拟機系統的注意事項

注意事項

0.虛拟機建議将記憶體和CPU數盡量開大,因為後邊要進行編譯,GCC還是指定-j(線程數)進行編譯的;

1.Ubuntu Server安裝時選中開啟ssh server(?具體名字我也不記得了),在整個搭建過程使用xshell進行遠端連入進行操作,不要直接在虛拟機裡操作,不僅複制檔案麻煩,而且複制指令,搜尋error也麻煩;

2.在系統安裝完畢後,将APT源更換為國内速度比較快的源(Ubuntu 18.04源),以便後續安裝,我覺得阿裡雲的很快2333;

3.這裡推薦一個軟體,proxychains,用來進行代理資料轉發,解決一些衆所周知的更新問題。這個軟體可以劫持其他軟體,強制性讓它走代理,支援轉sock5,http等協定通過指定代理伺服器(官方說傳輸層流量也能代理,這個半信半疑,因為在下邊因為TLS被打臉了)

proxychains可以通過源使用apt安裝

sudo apt update
sudo apt install proxychains				//安裝proxychains
nano /etc/proxychains.conf			//編輯配置檔案最後一行,删掉最後一行,按照上邊的example進行編寫,填入代理的類型,位址和端口
           
ubuntu18.04 Buildozer虛拟機配置Buildozer虛拟機配置已經搭建好的kivy環境

我這裡在主控端開啟了小飛機,然後開啟了區域網路通路,于是就這麼以上的位址與端口;

ubuntu18.04 Buildozer虛拟機配置Buildozer虛拟機配置已經搭建好的kivy環境

proxychains的使用方法就是加到正常的指令之前

使用proxychains wget www.google.com來測試網絡是否聯通

(二)正式開始安裝Buildozer

1.基本依賴安裝

  1. buildozer官方安裝指南傳送門
  2. 按照指南中的進行操作
sudo apt install -y git zip unzip openjdk-8-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake
           
echo 'export PATH=$PATH:~/.local/bin/' >> ~/.bashrc		//注意是單引号,不解釋變量$PATH,你也可以按照官方方法直接編輯檔案
           
這裡出現了一個坑,缺少了一個子產品,這個子產品也必須安裝,不然後邊會和你說找不到_ctype子產品,但是你python又能導入這個子產品,真是讓人摸不着頭腦…
sudo apt install libffi-dev
           

2.pip3安裝buildozer和一些python庫

proxychains pip3 install --user --upgrade buildozer
proxychains pip3 install --user --upgrade cython virtualenv
           

(三)正式運作buildozer進行編譯環境配置

1.随便寫個kivy程式

編寫完後放到使用者主目錄(~)下,命名為main.py

from kivy.app import App 
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text = 'First P4A (python for android) Project!')

TestApp().run()
           

2.執行初始化和配置buildozer

buildozer init
nano buildozer.spec
           

編輯配置檔案,使得日志級别為2,可以輸出更多有用資訊,報錯也好查

ubuntu18.04 Buildozer虛拟機配置Buildozer虛拟機配置已經搭建好的kivy環境

執行編譯,buildozer會自動分析依賴和下載下傳它們

proxychains buildozer android debug
           

如下圖,下載下傳中

ubuntu18.04 Buildozer虛拟機配置Buildozer虛拟機配置已經搭建好的kivy環境
3.下載下傳第二階段

SDK安裝完後,buildozer就進入了第二下載下傳階段,在此階段調用~/.buildozer/?/sdkmanager進行其餘編譯工具下載下傳。

ctrl+c中斷程式執行

ubuntu18.04 Buildozer虛拟機配置Buildozer虛拟機配置已經搭建好的kivy環境

此時就不要用proxychains了,貌似是TLS流量,代理不動

配置./android/androidtool.cfg開啟sdkmanager的代理(說實話我也不知道這有沒有用,哈哈)

nano ~/.android/androidtool.cfg
           

輸入以下配置

http.proxyPort=1080
http.proxyHost=192.168.127.1
sdkman.force.http=true
           

重新執行指令,注意不要加proxychains字首了

buildozer android debug
           

顯示如下頁面表示第二階段下載下傳完成,老樣子ctrl+c打斷

ubuntu18.04 Buildozer虛拟機配置Buildozer虛拟機配置已經搭建好的kivy環境
4.下載下傳第三階段

第三階段是調用python進行下載下傳,我們還是用proxychains來進行代理

proxychains buildozer android debug
           

下載下傳完成後會自動進入編譯階段,ctrl+c打斷

ubuntu18.04 Buildozer虛拟機配置Buildozer虛拟機配置已經搭建好的kivy環境
5.編譯階段

這裡又有坑,如果使用proxychains+buildozer指令行的編譯會造成一個問題,buildozer會顯示ipv6沒有被禁用(這個是因為buildozer --ipv6選項是自動的,在這種劫持方式的代理環境下容易出現問題)

不加proxychains字首執行編譯

buildozer android debug
           

(四)最後下載下傳階段

編譯基本完成,最後下載下傳一些sdk工具,老樣子ctrl+c打斷

ubuntu18.04 Buildozer虛拟機配置Buildozer虛拟機配置已經搭建好的kivy環境

proxychains代理加速

proxychains buildozer android debug
           

如果顯示以下界面,恭喜,編譯成功!

通過xftp把他下載下傳到主控端,然後通過qq發到手機上安裝看看吧!

ubuntu18.04 Buildozer虛拟機配置Buildozer虛拟機配置已經搭建好的kivy環境

已經搭建好的kivy環境

連結:百度網盤連結

提取碼:1unt

溜了溜了,做高數去了