If PyXLL isn't using the version of Python that you want it to you need to change your pyxll.cfg to point at the one you want to use.
For example, to use an Anaconda virtual env you would configure "executable" in the PYTHON section of the config file as follows:
executable = C:\Users\xxx\anaconda3\envs\pyxll\pythonw.exe
One common mistake is to modify the default config, but to leave this line commented out. In the config file, the ";" character is used to comment out lines. If you config looks like:
;executable = .../pythonw.exe
; NOTE THE ";" at the start of the line above
Then this line is commented out and will not be read by PyXLL.
To check everything looks ok, you can set the log verbosity to "debug" in your pyxll.cfg file and then take a look at the log file. The config as read by PyXLL is logged, and so if that looks different from how you expect it to, or anything is missing, check your config file again.