pypokereval : Draft walkthrough to create python site-package
This commit is contained in:
parent
46022509de
commit
d351205fc8
155
packaging/windows/pypokereval-win32-packaging-walkthrough.txt
Normal file
155
packaging/windows/pypokereval-win32-packaging-walkthrough.txt
Normal file
|
@ -0,0 +1,155 @@
|
||||||
|
pypokereval packaging for fpdb project
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
Created by Gimick on 11th December 2010
|
||||||
|
Content is available under the the GNU Affero General Public License version 3
|
||||||
|
|
||||||
|
Background
|
||||||
|
----------
|
||||||
|
|
||||||
|
The walktrough builds an unoffical python installer package for pypokereval.
|
||||||
|
|
||||||
|
In a previous walkthrough, the pypokereval dll(pyd) was built from source.
|
||||||
|
In this walkthrough, we are going to generate a windows package which will allow
|
||||||
|
the sources to be installed through distutils onto a client computer
|
||||||
|
|
||||||
|
The current situation is that there is no windows build or windows installer provided
|
||||||
|
by the package authors.
|
||||||
|
|
||||||
|
Until a package is available, the fpdb project needs some method of providing a windows
|
||||||
|
installation for the pypokereval module. This walkthrough will therefore be obsolete once
|
||||||
|
an official package becomes available.
|
||||||
|
|
||||||
|
Actually, for windows fpdb users, the majority will use a pre-built fpdb executable (which contains the
|
||||||
|
pypokereval package) Therefore, pypokereval installation will only be needed for two groups of people:
|
||||||
|
i) anyone wanting to build an fpdb package using py2exe
|
||||||
|
ii) anyone wanting to run fpdb on windows from source
|
||||||
|
|
||||||
|
Credits
|
||||||
|
-------
|
||||||
|
|
||||||
|
To loic@dachary.org at pokersource http://pokersource.sourceforge.net/
|
||||||
|
To donn.ingle@gmail.com for the tutorial here ... http://wiki.python.org/moin/Distutils/Tutorial
|
||||||
|
Official python reference here ... http://docs.python.org/distutils/index.html
|
||||||
|
|
||||||
|
Assumptions
|
||||||
|
-----------
|
||||||
|
|
||||||
|
The underlying dll(pyd) and pokereval library is built for win32 x86 platform only, so we will assume
|
||||||
|
32bit only in this walkthrough. Contributions for a x86-64 build are most welcome.
|
||||||
|
|
||||||
|
Similarly, the underlying package is built against the python 2-6 library and is valid only for that version.
|
||||||
|
The underlying package was not built with sse enabled, and therefore should work for legacy systems.
|
||||||
|
|
||||||
|
|
||||||
|
1. Install pre-requisites
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
System used for building is winXP home
|
||||||
|
|
||||||
|
1.1/ Install python runtime from here ...
|
||||||
|
|
||||||
|
Python 2.6.5 ... http://www.python.org/ftp/python/2.6.5/python-2.6.5.msi
|
||||||
|
|
||||||
|
1.2/ Grab pypokereval stuff from fpdb project here ...
|
||||||
|
|
||||||
|
pypokereval ... http://sourceforge.net/projects/fpdb/files/fpdb/pypoker-eval-win32/pypokereval-138-win32-py265-fpdb-1.1.exe/download
|
||||||
|
|
||||||
|
1.3/ Double click the pypokereval-138-win32-py265-fpdb-1.1.exe and extract the folder to the desktop
|
||||||
|
|
||||||
|
|
||||||
|
2. Prepare a folder containing the items needing packaging
|
||||||
|
----------------------------------------------------------
|
||||||
|
|
||||||
|
dos>cd desktop
|
||||||
|
dos>mkdir pypokereval138-installer-win32-py265-fpdb
|
||||||
|
dos>cd pypokereval138-installer-win32-py265-fpdb
|
||||||
|
dos>mkdir payload
|
||||||
|
dos>cd payload
|
||||||
|
|
||||||
|
dos>copy ..\..\pypokereval-138-win32-py265-fpdb-1.1\_pokereval_2_6.pyd
|
||||||
|
dos>copy ..\..\pypokereval-138-win32-py265-fpdb-1.1\pokereval.py
|
||||||
|
|
||||||
|
dos>mkdir utils
|
||||||
|
dos>cd utils
|
||||||
|
dos>copy ..\..\..\pypokereval-138-win32-py265-fpdb-1.1\test.py
|
||||||
|
dos>cd ..
|
||||||
|
|
||||||
|
The next step is to rename the pokereval.py file to __init__.py. The reason for doing this
|
||||||
|
is that site-packages require an __init__ file to be found when the module is imported at runtime
|
||||||
|
Inserting a dummy __init__.py which simply imports pokereval does not work, the reason being that the
|
||||||
|
PokerEval class is not seen by the caller. Syntax such as "from pokereval import PokerEval"
|
||||||
|
does not work unless the pokereval.py (which defines the PokerEval class) is renamed to __init__.py.
|
||||||
|
|
||||||
|
dos> rename pokereval.py __init__.py
|
||||||
|
|
||||||
|
3. Prepare the additional packaging files
|
||||||
|
|
||||||
|
dos>cd desktop
|
||||||
|
dos>cd pypokereval138-installer-win32-py265-fpdb
|
||||||
|
|
||||||
|
3.1/ setup.py
|
||||||
|
-------------
|
||||||
|
|
||||||
|
dos> edit setup.py
|
||||||
|
|
||||||
|
Include the following python code:
|
||||||
|
|
||||||
|
#==================================================
|
||||||
|
|
||||||
|
from distutils.core import setup
|
||||||
|
|
||||||
|
filelist = ["utils/*", "_pokereval_2_6.pyd"]
|
||||||
|
|
||||||
|
setup(name = "pokereval",
|
||||||
|
version = "138",
|
||||||
|
description = "pypokereval installer (unofficial)",
|
||||||
|
author = "project fpdb",
|
||||||
|
author_email = "Fpdb-main@lists.sourceforge.net",
|
||||||
|
url = "fpdb.sourceforge.net",
|
||||||
|
packages = ['pokereval'],
|
||||||
|
package_data = {'pokereval' : filelist },
|
||||||
|
long_description = """An unofficial installer for pypokereval v138, win32, python v2.6.5
|
||||||
|
pokereval official project page is at http://www.pokersource.info/"""
|
||||||
|
)
|
||||||
|
|
||||||
|
#==================================================
|
||||||
|
|
||||||
|
3.2 / review directory tree
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
The following structure should now exist.
|
||||||
|
|
||||||
|
pypokereval138-installer-win32-py265-fpdb
|
||||||
|
|--setup.py
|
||||||
|
|--pokereval
|
||||||
|
|--_pokereval_2_6.pyd
|
||||||
|
|--__init__.py
|
||||||
|
|--utils
|
||||||
|
|--test.py
|
||||||
|
|
||||||
|
|
||||||
|
3.3 Build
|
||||||
|
---------
|
||||||
|
|
||||||
|
Navigate to the desktop/pypokereval138-installer-win32-py265-fpdb directory
|
||||||
|
|
||||||
|
dos>c:\Python26\python.exe setup.py bdist_wininst --plat-name=win32 --user-access-control auto
|
||||||
|
|
||||||
|
3.4 Complete
|
||||||
|
------------
|
||||||
|
|
||||||
|
The executable file pokereval-138.win32.exe will be in the newly-created dist folder.
|
||||||
|
|
||||||
|
3.5 Install and test
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Double click to install
|
||||||
|
Navigate to c:\python26\lib\site-packages\pokereval\test
|
||||||
|
|
||||||
|
execute dos>c:\Python26\python.exe test.py
|
||||||
|
|
||||||
|
Output should scroll down the screen
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user