Ceci est une ancienne révision du document !
Table des matières
Development Environment and librairies
Please here after the typical list of addition packages I'm using.
Most of same are compliant with pip download installation mode:
pip install <package>
or <installation directory>\python.exe -m pip install <package>
- doxypypy : required for documentation generation
- pylint: required for code quality
- openxl : MS Excel & Libreoffice calc files manipulation
- pyqt5 :
- py2exe
- rtcclient : optional RTC management
- lxml (see below for installation)
- pywin32 (see below fo installation)
lxml installation instructions
As on Windows download pip lxml installation may failed, use the file pip installation mode:
C:\Apps\Python36>python.exe -m pip install <download path location>\lxml-3.7.1-cp36-cp36m-win_amd64.whl
pywin32 installation instructions
Three install solutions are availble:
- use
pypiwin32
a pip compliant version of pywin32 but at time I'm writing this lines only the 2.19 is available where the official package is now available in version 2.20 - download the installation package from official site direct access to build 220 files
- Install form source package
= installation issue workaround = If the install package complains to not find any Python36 amd64 installation, try using the source package
= installation from source package =
- Download the source package, unzip it
- Make sure to have latest visual studio SDK installed
- Open SDK command line (https://msdn.microsoft.com/en-us/library/x4d2c09s.aspx)
- Choose Start, expand All Programs, Visual Studio, Visual Studio Tools, and then choose a command prompt
- Make sure your python installation is in PATH
SET PATH=<python.exe directory path>;%PATH%
- Run the following command from source directory:\\
C:\Apps\Python36\pywin32-220>python setup3.py -q install
- If your experimented the following issue
Converting…
Executing…
Building pywin32 3.6.220.0
Traceback (most recent call last):
File “setup3.py”, line 16, in <module>
exec(str(got))
File “<string>”, line 1944, in <module>
File “<string>”, line 594, in init
File “C:\Apps\Python36\lib\ntpath.py”, line 75, in join
path = os.fspath(path)
TypeError: expected str, bytes or os.PathLike object, not NoneType
Setup.py is looking for SDK, set the MsSdk environment variable to dupe it
- Search for windows.h in c:\Program Files (x86)\Microsoft SDKs
SET MSSdk=c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\
- Run 'setup3.py -q build' the command and waiting a while …
remove the -q
to have detailled build information
- For installation - do the same from a Command line opened 'as Adminstrator' (right click)
# SET PYTHONDIR=C:\Apps\Python36 # SET PATH=%PYTHONDIR%;%PATH% # CD %PYTHONDIR%\pywin32-220 # SET MSSdk=c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\ # python setup3.py -q build # python setup3.py -q install
Fundamental Rules
RUL_GEN_001 Comments
A comment is there to explain the code not to rephrase it.
Comment shall not contradict the code, update the comment with the code.
RUL_GEN_002 Important Rule
<note tip> If you don't understand why you should not modify a line, DON'T MODIFY IT! </note>
RUL_GEN_003 More Important Rule
Don't modify a line just to make it nicer, better, what ever justification you want, until there is a declared issue or an enhancement or task assigned to you linked with the line.
RUL_GEN_004 Mosy Important Rule
<note warning> In any case, Keep it simple </note>
Coding Rules
RUL_COD_001
Follow the Python development guidelines described in PEP008 with the following adaptations
Edition Rule
ADV_GEN_005 Tab is not space
Configure your editor to replace tab by 4 spaces (4). If your editor is not enable to replace don't insert TAB.
RUL_GEN_006 Indentation
Always use 4 space indentation except for arguments indentation
Strings
RUL_STR_01 str usage
Use str
only for internal 7 bits characters string or bytes
storage
RUL_STR_002 QString usage
Use QString
only for Qt API functions and methods, convert results as soon as possible to unicode
to be compliant for Python functions.
RUL_STR_003 Use unicode
For all other strings use unicode
only strings.