Python Forum
Python broken if moved to a different folder - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: Python broken if moved to a different folder (/thread-30577.html)



Python broken if moved to a different folder - ecastrotns - Oct-26-2020

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?


RE: Python broken if moved to a different folder - bowlofred - Oct-26-2020

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.


RE: Python broken if moved to a different folder - ecastrotns - Oct-26-2020

(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.


RE: Python broken if moved to a different folder - ecastrotns - Oct-26-2020

I think the point is this: https://python-packaging.readthedocs.io/en/latest/command-line-scripts.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.