156 lines
4.9 KiB
Plaintext
156 lines
4.9 KiB
Plaintext
|
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
|
||
|
|
||
|
|
||
|
|