pythonservice.exe doesn't "wrap" python.exe - it's a stand-alone
executable which embeds Python. Thus there's no way to pass a cmd-line
param to python.exe as python.exe isn't involved. You could patch
pythonservice.exe to handle that arg, then do whatever it is python.exe
does with that arg.
If you told me more about what went wrong with using python.exe as the
executable for the service we might be able to work something out there,
but "doesn't work" has never been a useful starting point.
Cheers,
Mark
On 2023-06-06 2:56 a.m., Gualtiero Scotti wrote:
HI Mark and Hi all,
as I wrote previously Mark's solution did not work for me. I need
pythonsevice.exe is able to pass -X utf8 parameter to python
interpreter or in alternative is able to evaluate evaluate the
environment variable PYTHONUTF8=1. Any suggestions?
Please help me.
Thanks in advance
Il giorno lun 5 giu 2023 alle ore 10:51 Gualtiero Scotti
<tie...@gmail.com> ha scritto:
HI Mark,
I've tried your solution but it doesn't work. When calling python
directly, service fails to start.
When i use
#_exe_name_ = sys.executable #_exe_args_ = ' -X utf8 ' + '"' +
os.path.abspath(sys.argv[0]) + '"'
service are directly linked to my python app without using
pythonservice.exe. ( I saw this on Regedit)
_As you wrote on your example:_
_
_
# This is an example of a service hosted by python.exe rather than
# pythonservice.exe.
# *Note that it is very rare that using python.exe is a better option*
# than the default pythonservice.exe - the latter has better error
handling
# so that if Python itself can't be initialized or there are very
early
# i*mport errors, you will get error details written to the event
log*. When
# using python.exe instead, you are forced to wait for the
interpreter startup
# and imports to succeed before you are able to effectively setup
your own
# error handling.
*# So in short, please make sure you *really* want to do this,
otherwise just
# stick with the default.*
*
*
I need to use pythonservice.exe but I don't understand how it
wraps my python application. Is there a way to tell to
pythonservice.exe to call python with some interpreter arguments?
Thanks in advance.
*
*
Il giorno gio 1 giu 2023 alle ore 17:05 Mark Hammond
<skippy.hamm...@gmail.com> ha scritto:
https://github.com/mhammond/pywin32/blob/main/win32/Demos/service/nativePipeTestService.py
is a demo of using a service using python.exe and supports
specifying the command-line, so that might be an option?
Mark
On 2023-06-01 5:28 a.m., Gualtiero Scotti wrote:
Hi, I need to start my python application through windows
service. For this purpose I use pywin32.
I'm not able to make a Python instance to evaluate the -X uf8
flag.
This flag must be passed during python invocation only and
not when it is already started.
After some investigations I've found the service launch
*pythonservice.exe* wrapper but I don't know how to pass the
flag to the Python interpreter.
Is there another option to set this flag? It is possible to
set an env variable *PYTHONUTF8=1 * but pythonservice.exe
doesn't seem to evaluate it...
*
*
*My environment*
*- Windows 11 Home 22H2*
*- Python 3.11.1* (tags/v3.11.1:a7a450f, Dec 6 2022,
19:43:28) [MSC v.1934 32 bit (Intel)] on win32
- *Pywin32 305*
- *Pywin32-ctypes 0.2.0*
*Python documentation*
4.7. UTF-8 mode¶
<https://docs.python.org/3/using/windows.html#utf-8-mode>
New in version 3.7.
Windows still uses legacy encodings for the system encoding
(the ANSI Code Page). Python uses it for the default encoding
of text files (e.g. |locale.getencoding()|
<https://docs.python.org/3/library/locale.html#locale.getencoding>).
This may cause issues because UTF-8 is widely used on the
internet and most Unix systems, including WSL (Windows
Subsystem for Linux).
You can use the Python UTF-8 Mode
<https://docs.python.org/3/library/os.html#utf8-mode> to
change the default text encoding to UTF-8. You can enable the
Python UTF-8 Mode
<https://docs.python.org/3/library/os.html#utf8-mode> via the
|-X utf8| command line option, or the
|PYTHONUTF8=1| environment variable. See |PYTHONUTF8|
<https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUTF8> for
enabling UTF-8 mode, and Excursus: Setting environment
variables
<https://docs.python.org/3/using/windows.html#setting-envvars> for
how to modify environment variables.
When the Python UTF-8 Mode
<https://docs.python.org/3/library/os.html#utf8-mode> is
enabled, you can still use the system encoding (the ANSI Code
Page) via the “mbcs” codec.
Note that adding |PYTHONUTF8=1| to the default environment
variables will affect all Python 3.7+ applications on your
system. If you have any Python 3.7+ applications which rely
on the legacy system encoding, it is recommended to set the
environment variable temporarily or use the |-X utf8| command
line option.
Note
Even when UTF-8 mode is disabled, Python uses UTF-8 by
default on Windows for:
*
Console I/O including standard I/O (see *PEP 528*
<https://peps.python.org/pep-0528/> for details).
*
The filesystem encoding
<https://docs.python.org/3/glossary.html#term-filesystem-encoding-and-error-handler>
(see
*PEP 529* <https://peps.python.org/pep-0529/> for details).
from -> https://docs.python.org/3/using/windows.html
Please help me!
Thanks in advance
*
*
_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32
_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32