Python Forum

Full Version: Python broken if moved to a different folder
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

I'm building a installer to redistribute inside my company Scons with some special tools developed in-house. The idea is to have an environment with Python, SCons and our in-house tools independent of any other Python installation. I'm using InnoSetup as installer. We are using Windows OS.

I found that I cannot change the Python installation directory without breaking the "exe's"under %Python%\Scripts. But then I realized that by fixing the shebang of the *-script.py files the problem was solved. So I adapt my Inno scripts to fix this automatically and everything worked ok.

Now I wanted to do a new install with Python 3.8 (prior was Python 3.9) and the problem that I'm encountering is that when I "pip install" scons, I only get a bunch of "exe's" under Scripts and no *-script.py file where I can replace the shebang line.

At the beginning I thought, ok, maybe now I can simply change the Python directory without having to worry about shebang lines, but I foound the same issue, scons.exe will not run if I move the python installation folder.

I spend 4 hours with this issue, googling it and trying different things and anything work.

How can I make pip install to create *-script.pu files? Or how can I make a Python installation that does not depend on the absolute path where Python was installed?
Can you create a "wrapper" script? Have it gather the args passed in, then it sets PYTHONPATH to your installation and calls the correct python exe and passes in the arguments.
(Oct-26-2020, 10:13 PM)bowlofred Wrote: [ -> ]Can you create a "wrapper" script? Have it gather the args passed in, then it sets PYTHONPATH to your installation and calls the correct python exe and passes in the arguments.

I could create a cmd that (for my example), does:

@%~d0%~p0..\python.exe -m SCons %*
But I'm not sure if this is the correct "pythonic" way, apart from having to manually create the .cmd files myself.
I think the point is this: https://python-packaging.readthedocs.io/...ripts.html. How can I make those console scripts turn to be cmd files instead of exe files? Or how can this exe files can work with paths relative to the script and not absolute.