2014年1月20日 星期一

make distribution 發布套件

1. 要製作source distribution, 指令為
python setup.py sdist
將產生 .zip 檔
(1)內容如下

(2)下python setup.py sdist指令後如下



2. 另外也可以包成tar.gz, 指令為
python setup.py sdist --formats=gztar,zip
上面指令將產生.zip, .tar.gz



2014年1月19日 星期日

python 安裝 pymodbus

1. 使用easy_install裝好後沒有自動提示
所以又手動裝裝看, 結果竟然有Error!!
找不到 vcvarsall.bat
還不知道為何????
-->剛找到說,這是因為少了 C compiler的原因???(why?)
只要裝了minGW (或是VC的 compiler),再把安裝指令改為:
setup.py install build --compiler=mingw32
-->這還要再找時間來測測看

2. 後來發現 easy_install後,再把從pymodbus網頁下載到的source解壓後,把"pymodbus"這個資料夾放到「C:\Python27\Lib\site-packages」資料夾中即可有「Auto completion」功能
也不需要在「Tools / options / IDE options / Special packages」欄位中加入 pymodbus的文字…
這一點可能再找時間找空白的電腦測試看看


============Error 如下=================
E:\python\workspace\pymodbus\pymodbus-1.2.0>python setup.py install
running install
running bdist_egg
running egg_info
writing requirements to pymodbus.egg-info\requires.txt
writing pymodbus.egg-info\PKG-INFO
writing top-level names to pymodbus.egg-info\top_level.txt
writing dependency_links to pymodbus.egg-info\dependency_links.txt
reading manifest file 'pymodbus.egg-info\SOURCES.txt'
writing manifest file 'pymodbus.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
creating build
creating build\lib
copying ez_setup.py -> build\lib
creating build\lib\pymodbus
copying pymodbus\bit_read_message.py -> build\lib\pymodbus
copying pymodbus\bit_write_message.py -> build\lib\pymodbus
copying pymodbus\constants.py -> build\lib\pymodbus
copying pymodbus\device.py -> build\lib\pymodbus
copying pymodbus\diag_message.py -> build\lib\pymodbus
copying pymodbus\events.py -> build\lib\pymodbus
copying pymodbus\exceptions.py -> build\lib\pymodbus
copying pymodbus\factory.py -> build\lib\pymodbus
copying pymodbus\file_message.py -> build\lib\pymodbus
copying pymodbus\interfaces.py -> build\lib\pymodbus
copying pymodbus\mei_message.py -> build\lib\pymodbus
copying pymodbus\other_message.py -> build\lib\pymodbus
copying pymodbus\payload.py -> build\lib\pymodbus
copying pymodbus\pdu.py -> build\lib\pymodbus
copying pymodbus\register_read_message.py -> build\lib\pymodbus
copying pymodbus\register_write_message.py -> build\lib\pymodbus
copying pymodbus\transaction.py -> build\lib\pymodbus
copying pymodbus\utilities.py -> build\lib\pymodbus
copying pymodbus\version.py -> build\lib\pymodbus
copying pymodbus\__init__.py -> build\lib\pymodbus
creating build\lib\pymodbus\client
copying pymodbus\client\async.py -> build\lib\pymodbus\client
copying pymodbus\client\common.py -> build\lib\pymodbus\client
copying pymodbus\client\sync.py -> build\lib\pymodbus\client
copying pymodbus\client\__init__.py -> build\lib\pymodbus\client
creating build\lib\pymodbus\datastore
copying pymodbus\datastore\context.py -> build\lib\pymodbus\datastore
copying pymodbus\datastore\remote.py -> build\lib\pymodbus\datastore
copying pymodbus\datastore\store.py -> build\lib\pymodbus\datastore
copying pymodbus\datastore\__init__.py -> build\lib\pymodbus\datastore
creating build\lib\pymodbus\internal
copying pymodbus\internal\ptwisted.py -> build\lib\pymodbus\internal
copying pymodbus\internal\__init__.py -> build\lib\pymodbus\internal
creating build\lib\pymodbus\server
copying pymodbus\server\async.py -> build\lib\pymodbus\server
copying pymodbus\server\sync.py -> build\lib\pymodbus\server
copying pymodbus\server\__init__.py -> build\lib\pymodbus\server
creating build\bdist.win-amd64
creating build\bdist.win-amd64\egg
copying build\lib\ez_setup.py -> build\bdist.win-amd64\egg
creating build\bdist.win-amd64\egg\pymodbus
copying build\lib\pymodbus\bit_read_message.py -> build\bdist.win-amd64\egg\pymo
dbus
copying build\lib\pymodbus\bit_write_message.py -> build\bdist.win-amd64\egg\pym
odbus
creating build\bdist.win-amd64\egg\pymodbus\client
copying build\lib\pymodbus\client\async.py -> build\bdist.win-amd64\egg\pymodbus
\client
copying build\lib\pymodbus\client\common.py -> build\bdist.win-amd64\egg\pymodbu
s\client
copying build\lib\pymodbus\client\sync.py -> build\bdist.win-amd64\egg\pymodbus\
client
copying build\lib\pymodbus\client\__init__.py -> build\bdist.win-amd64\egg\pymod
bus\client
copying build\lib\pymodbus\constants.py -> build\bdist.win-amd64\egg\pymodbus
creating build\bdist.win-amd64\egg\pymodbus\datastore
copying build\lib\pymodbus\datastore\context.py -> build\bdist.win-amd64\egg\pym
odbus\datastore
copying build\lib\pymodbus\datastore\remote.py -> build\bdist.win-amd64\egg\pymo
dbus\datastore
copying build\lib\pymodbus\datastore\store.py -> build\bdist.win-amd64\egg\pymod
bus\datastore
copying build\lib\pymodbus\datastore\__init__.py -> build\bdist.win-amd64\egg\py
modbus\datastore
copying build\lib\pymodbus\device.py -> build\bdist.win-amd64\egg\pymodbus
copying build\lib\pymodbus\diag_message.py -> build\bdist.win-amd64\egg\pymodbus

copying build\lib\pymodbus\events.py -> build\bdist.win-amd64\egg\pymodbus
copying build\lib\pymodbus\exceptions.py -> build\bdist.win-amd64\egg\pymodbus
copying build\lib\pymodbus\factory.py -> build\bdist.win-amd64\egg\pymodbus
copying build\lib\pymodbus\file_message.py -> build\bdist.win-amd64\egg\pymodbus

copying build\lib\pymodbus\interfaces.py -> build\bdist.win-amd64\egg\pymodbus
creating build\bdist.win-amd64\egg\pymodbus\internal
copying build\lib\pymodbus\internal\ptwisted.py -> build\bdist.win-amd64\egg\pym
odbus\internal
copying build\lib\pymodbus\internal\__init__.py -> build\bdist.win-amd64\egg\pym
odbus\internal
copying build\lib\pymodbus\mei_message.py -> build\bdist.win-amd64\egg\pymodbus
copying build\lib\pymodbus\other_message.py -> build\bdist.win-amd64\egg\pymodbu
s
copying build\lib\pymodbus\payload.py -> build\bdist.win-amd64\egg\pymodbus
copying build\lib\pymodbus\pdu.py -> build\bdist.win-amd64\egg\pymodbus
copying build\lib\pymodbus\register_read_message.py -> build\bdist.win-amd64\egg
\pymodbus
copying build\lib\pymodbus\register_write_message.py -> build\bdist.win-amd64\eg
g\pymodbus
creating build\bdist.win-amd64\egg\pymodbus\server
copying build\lib\pymodbus\server\async.py -> build\bdist.win-amd64\egg\pymodbus
\server
copying build\lib\pymodbus\server\sync.py -> build\bdist.win-amd64\egg\pymodbus\
server
copying build\lib\pymodbus\server\__init__.py -> build\bdist.win-amd64\egg\pymod
bus\server
copying build\lib\pymodbus\transaction.py -> build\bdist.win-amd64\egg\pymodbus
copying build\lib\pymodbus\utilities.py -> build\bdist.win-amd64\egg\pymodbus
copying build\lib\pymodbus\version.py -> build\bdist.win-amd64\egg\pymodbus
copying build\lib\pymodbus\__init__.py -> build\bdist.win-amd64\egg\pymodbus
byte-compiling build\bdist.win-amd64\egg\ez_setup.py to ez_setup.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\bit_read_message.py to bit_rea
d_message.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\bit_write_message.py to bit_wr
ite_message.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\client\async.py to async.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\client\common.py to common.pyc

byte-compiling build\bdist.win-amd64\egg\pymodbus\client\sync.py to sync.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\client\__init__.py to __init__
.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\constants.py to constants.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\datastore\context.py to contex
t.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\datastore\remote.py to remote.
pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\datastore\store.py to store.py
c
byte-compiling build\bdist.win-amd64\egg\pymodbus\datastore\__init__.py to __ini
t__.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\device.py to device.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\diag_message.py to diag_messag
e.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\events.py to events.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\exceptions.py to exceptions.py
c
byte-compiling build\bdist.win-amd64\egg\pymodbus\factory.py to factory.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\file_message.py to file_messag
e.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\interfaces.py to interfaces.py
c
byte-compiling build\bdist.win-amd64\egg\pymodbus\internal\ptwisted.py to ptwist
ed.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\internal\__init__.py to __init
__.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\mei_message.py to mei_message.
pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\other_message.py to other_mess
age.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\payload.py to payload.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\pdu.py to pdu.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\register_read_message.py to re
gister_read_message.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\register_write_message.py to r
egister_write_message.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\server\async.py to async.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\server\sync.py to sync.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\server\__init__.py to __init__
.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\transaction.py to transaction.
pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\utilities.py to utilities.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\version.py to version.pyc
byte-compiling build\bdist.win-amd64\egg\pymodbus\__init__.py to __init__.pyc
creating build\bdist.win-amd64\egg\EGG-INFO
copying pymodbus.egg-info\PKG-INFO -> build\bdist.win-amd64\egg\EGG-INFO
copying pymodbus.egg-info\SOURCES.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying pymodbus.egg-info\dependency_links.txt -> build\bdist.win-amd64\egg\EGG-
INFO
copying pymodbus.egg-info\requires.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying pymodbus.egg-info\top_level.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying pymodbus.egg-info\zip-safe -> build\bdist.win-amd64\egg\EGG-INFO
creating dist
creating 'dist\pymodbus-1.2.0-py2.7.egg' and adding 'build\bdist.win-amd64\egg'
to it
removing 'build\bdist.win-amd64\egg' (and everything under it)
Processing pymodbus-1.2.0-py2.7.egg
Removing c:\python27\lib\site-packages\pymodbus-1.2.0-py2.7.egg
Copying pymodbus-1.2.0-py2.7.egg to c:\python27\lib\site-packages
pymodbus 1.2.0 is already the active version in easy-install.pth

Installed c:\python27\lib\site-packages\pymodbus-1.2.0-py2.7.egg
Processing dependencies for pymodbus==1.2.0
Searching for twisted>=12.2.0
Reading https://pypi.python.org/simple/twisted/
Best match: Twisted 13.2.0
Downloading https://pypi.python.org/packages/source/T/Twisted/Twisted-13.2.0.tar
.bz2#md5=83fe6c0c911cc1602dbffb036be0ba79
Processing Twisted-13.2.0.tar.bz2
Writing c:\users\malo\appdata\local\temp\easy_install-x42suz\Twisted-13.2.0\setu
p.cfg
Running Twisted-13.2.0\setup.py -q bdist_egg --dist-dir c:\users\malo\appdata\lo
cal\temp\easy_install-x42suz\Twisted-13.2.0\egg-dist-tmp-m3xy4n
error: Setup script exited with error: Unable to find vcvarsall.bat

PyScripter 變更背景顏色

這邊已經有人家先配好的
https://code.google.com/p/pyscripter/wiki/Customization
下載
DarkHighlight.ini
DarkHighlight2.ini
其中一個
再用"Tools / Options / Import/Export / Import Highlighters"
把設定匯進來
就有顏色了


2014年1月18日 星期六

pyscripter + NumPy 的自動提示(完成)功能 (auto-completion)

pyscripter來寫python程式已經一段時間了, 感覺還蠻好用了
也很習慣它的自動完成功能 (Auto completion)
最近使用NumPy時發現這個功能竟然不會動
但在Python Interpreter視窗中卻運作良好, 真的很奇怪


google一下, 得知要再編輯視窗也有Auto completion功能
只要簡單設定一下就可以了
如下圖, 在"Tool / Option / IDE Options"中
把"numpy"加入 "Special packages"中即可

可能是因為這個package是位於不一樣的地方造成的吧


NumPy 在win7 64位元, python2.7 環境下安裝

消失一陣子....前一陣子終於把"Head First Python"看完了
蠻精彩的, 由一般的python IO一路說到web設計, android手機程式, GAE設計
看得蠻入神的, 花了一個月在工作之餘看完了它

好~回到正題, 最近有可能會用到NumPy, 因此開始學...沒想到剛要安裝NumPy就卡關了
原來, 在64位元下要另外用非官方版的安裝程式安裝!!
http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
我是用python2.7所以下載相對應了版本
numpy-MKL-1.8.0.win-amd64-py2.7.exe


若是用32位元就不用那麼麻煩了
可以用easy_install numpy 指令直接安裝
或是使用NumPy官方的安裝檔:
http://sourceforge.net/projects/numpy/files/NumPy/1.7.2/
中的
http://sourceforge.net/projects/numpy/files/NumPy/1.7.2/numpy-1.7.2-win32-superpack-python2.7.exe/download


2014年1月6日 星期一

python 2.7 3.3共存 -- 使用pyscripter

因為一開始在學Python時,看網路上都推python2.7
但最近在讀「Head First Python」這本書是使用3.x的
一開始沒注意到都沒問題……一直到…
開始寫網頁時,他的第一個程式 Web Server就跑不起來了
因為用了3.x only的函式…XD
搞不懂怎麼設定,直到…

後來發現在它在功能表中預設已有針對每個版本的執行捷徑,才了解怎麼做!!

比如說在 PyScripter for Python 3.3上面按右鍵 / 內容,就可以看到捷徑是:
"C:\Program Files\PyScripter\PyScripter.exe" --PYTHON33
所以只要在執行程式後加入你要的版本就可以了!!

真的很方便!!