python編寫webservice(webapp)的起步小節

今天終於寫出了服務端的一個helloworld.

小小總結一下,以表紀念。因爲的確不是很容易,在完全自己摸索的前提下。

目前的需求,是將嵌入式設備板卡的設備 的測試函數,通過bash中調用的curl發現我正在編寫的webservice中,然後將測試結果寫入數據庫。

本週花了幾天時間,啓動這個事。

現在終於邁出第一步:在pycharm中將sypne自帶的helloworld_soap.py跑起來。

這裏將中間遇到的各種坑記錄一下。(從離現在近的事情,倒着寫)

============================================

1。【換清華的pip支持】 最後一個問題,是Debug後,發現lxml利用pip install lxml無法安裝。

然後,找到一個貼子,在這裏建一個目錄:C:\Users\Administrator\AppData\Roaming\pip

然後建pip.ini,

填上內容

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

然後,在pycharm的terminal,可以安裝lxml。

嗯,的確感謝清華。感謝所有清華。

2. 【用源碼換掉pip安裝的spyne】helloworld_soap.py編不過。這裏找了n多的貼子。

但是,發現一個最簡單的問題,pip install spyne後,安裝的spyne的版本,與網上那些例子不一樣,特別是,spyne自帶的文檔,

似乎也比代碼舊了不少。

http://spyne.io/docs/2.10/manual/02_helloworld.html

http://soaplib.github.io/soaplib/2_0/pages/helloworld.html#declaring-a-soaplib-service

然後,我決定,把spyne的源碼下載下來。

git clone https://github.com/arskom/spyne.git

替換掉由pip安裝好的spyne【youproject\venv\Lib\site-packages\spyne ,換成自己下下來的。】。後來的事實證明,這是完全正確的。當然,也許有隱患,因爲現在的代碼__version__ = '2.13.12-alpha'

是個alpha版本,嗯,是有點,不過也沒有什麼。

比較了一下,的確與pip自動安裝的2.12差別很大。

但是代碼終於可以編過了。

3。 pycharm出錯後的顯示信息。因爲第一次用,還是適應了好一會,纔看明白到底錯在哪裏。

4。 再向前推,是選型,到底基於哪個示例開發webservice.

這裏顯然是花了最長的時間。

收集到足夠的信息後,我決定從最簡單的開始,先試試soaplib,結果你猜怎麼着,網上的代碼大多編不過。

因爲之前已知道soaplib被升級成rpclib,而rpclib又被升級爲spyne.

但因爲soaplib的文章相對較多,我只是想完成任務,沒必要搞最新的,所以我自然是絲毫沒有猶豫,直奔soaplib而去。

然後,現實與想的有很大差距,第一個遇到的問題,是代碼編過了。

這是我這次項目中第二個python文件,之前那是用eclipse完全純手工,將數據寫入到mysql中。沒費什麼勁。

但這次不同,完全編不過。引入的各種庫不是報錯,就是import語句說庫裏沒這些組件。

好吧。。。。。沒必要跟自己過不去,還是用最新的吧。所以還是用spyne

git clone https://github.com/arskom/spyne.git

而這其中,後來證明,網上的文章都不靠譜,而應當直接用示例:

https://github.com/arskom/spyne/tree/master/examples/helloworld_soap.py

5。使用pycharm

python環境建好後,如何使用pycharm成爲下一個重要的任務。

pycharm的【setting】在【file】下面,這裏是一個比較大的坑。另外,事實證明,最好漢化。我裝好後,突然犯懶,沒有漢化,字太好,太不好找。

然後是使用pycharm建工程。

這裏有兩件事,之前要裝好python3,還是放棄python2吧。搞python這些人,有些瘋狂。舊的東西,他們支持得不好。

然後,一定要選用virtualenv來建。

這裏我忘記了,是否裝了virtualenv和它在windows下的包裝。可能不用,因爲mycharm會處理這些事。只要你設置好代理。

6。建python的開發環境。

這裏費了不少的勁。

因爲不熟。。。

現在總結,兩條路:

一條路是:裝python,然後裝pip,然後pycharm,然後開工。

一條路可能是更好:只裝Andconda . 但是,Andconda的問題是,無論如保pycharm也找不到pip,但這也許不是大問題,只要加入到環境變量中即可。即C:\ProgramData\Anaconda3\Scripts和C:\ProgramData\Anaconda3\Library\bin兩個目錄。

但這樣,可能影響已安裝好的。

似乎目前mycharm還無法解決這個問題。除非設置了上述環境變量。這裏可能是我哪裏搞得不對。可能手工將這些文件(pip.exe和conda.exe)拷到自己的virtualenv中,也是一樣可以用的。

7. python常用的庫

這裏花的時間也不少。

一開始沒有搞清楚這些組件的含義,走錯了幾次方向。

如request是用於客戶端的,簡化python調用WEBservice的。在我這次的任務中,就沒有意義。因爲這次客戶端是linux的shell,在板卡上,我們不能保證板卡上有可用的python 環境。

還有pip ,conda,anaconda,virtualenv等等,繞了很多。

8。安裝python和mycharm的各種困難。如在xp下如何裝,如何在xp下jdk1.8等等。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章