Thank you Mark, I'm going to try...
I haven't tried your demo yet. My code doesn't work with or without the
command line change
Best regards

Il giorno mar 6 giu 2023 alle ore 16:38 Mark Hammond <
mhamm...@skippinet.com.au> ha scritto:

> That error typically means your Python code raised an exception before the
> service could be started. You probably need some way to track that down -
> eg, some way to discover stdout/stderr from your service - win32traceutil
> etc might help depending on how the service is configured. Does the demo
> itself work? Does it work without the command-line mods?
>
> Mark
> On 2023-06-06 9:57 a.m., Gualtiero Scotti wrote:
>
> Thank you Mark for your response, and your explanation.You are right,
> python.exe is not involved but I thought you handled the flag in your
> embedded calls..
> When I try to start service it doesn't start and the error  message  is:
>
> * Error starting service: The service did not respond to the start or
> control request in a timely fashion.*
>
> _svc_name_ = 'XXXXXXXXXXXXXXX' _svc_display_name_ = 'XXXXXXXXXXXXXXXXXXX' 
> _svc_description_
> = 'SXXXXXXXXXXXXXXX' _exe_name_ = sys.executable _exe_args_ = '-X utf8 "' +
> os.path.abspath(__file__) + '"'
>
> When I take a look to the service on Regedit I've the following situation:
> ImagePath = *"C:\Program Files
> (x86)\snapp-device-manager-win32\Python\python.exe" -X utf8 "C:\Program
> Files (x86)\xxxxxxxxxxxxxx\winservice_launcher32.py"*
> I can't find any logs about failure.... windows doesn't help me......
> [image: image.png]
>
> Thanks in advance for your availability.
> Best regards
>
> Il giorno mar 6 giu 2023 alle ore 15:05 Mark Hammond <
> mhamm...@skippinet.com.au> ha scritto:
>
>> 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 
>>>> listpython-win32@python.orghttps://mail.python.org/mailman/listinfo/python-win32
>>>>
>>>>
_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32

Reply via email to