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