2017-01-01 144 views
0

我在Python文件中有一個Flask服務器。這很簡單:安裝setuptools後Kivy Buildozer - 「No module named setuptools」

from flask import Flask 
app = Flask(__name__) 

@app.route('/') 
def hello(): 
    return "Hello World!" 

if __name__ == '__main__': 
    app.run() 

我正在使用Kivy的Buildozer來構建我的文件。在創建buildozer.spec並指定requirements = kivy,flask後,我嘗試使用應構建APK的buildozer -v android debug構建。

相反,它崩潰的建設中,給了我這個錯誤:

File "setup.py", line 4, in

from setuptools import setup

ImportError: No module named setuptools

setup.py是Buildozer的,不是我的。

我完全卸載setuptools的與sudo apt-get purge python-setuptoolssudo -H pip uninstall setuptools和I從/ usr/local/bin中(二者easy_installeasy_install-2.7)除去easy_install的命令。我運行sudo easy_install,它說它不在那裏。好。

然後我按照here的說明操作,我運行的是wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python。它安裝成功,我通過執行sudo easy_install並檢查/usr/local/bin來測試easy_install。我也進入Python shell並鍵入from setuptools import setup,它可以工作。所以,安裝setuptools。但是,buildozer -v android debug仍然會失敗並顯示相同的錯誤。

有人能夠弄清楚發生了什麼? Setuptools已安裝; Buildozer爲什麼沒有找到它?

這是我的日誌,與LOG_LEVEL = 2 buildozer.spec:Link

+0

發佈完整日誌。 Buildozer正在運行它自己構建的python(完全與正常的系統python無關),但我不確定爲什麼你會從中得到一個setuptools錯誤 - 或者它不應該是必需的,或者應該由buildozer安裝作爲依賴。 – inclement

+0

@inclement檢查新的編輯。 –

回答

1

您正在使用舊的python-for-android工具鏈,該工具鏈不支持燒瓶後端。運行buildozer android_new debug而不是使用新的工具鏈。

0

揣摩其二進制蟒(環境)做buildozer使用。我猜測它使用了另一個,然後是你認爲的那個,並且沒有安裝setuptools。

+0

我怎麼知道它使用哪個二進制文件?我應該使用什麼命令? –

+0

你可以試試strace ..運行:「strace buildozer android debug | grep python」並查找它用來打開python解釋器的路徑。 – Sawel

+0

啊,我找到了。它是'/ usr/local/lib/python2.7/dist-packages/buildozer',所以Python 2.7。我用'sudo python2.7 setup.py install'安裝了Buildozer,所以它應該是正確的。 –