Distutils/Setuptools/Distribute modify shebangs of installed Python scripts, so that they contain path of Python interpreter with version included (e.g. "#!/usr/bin/python3.2"). This behavior has both advantage and disadvantages: - Scripts of packages supporting only e.g. Python 2 can be executed (without necessity of using of e.g. "python2 /usr/bin/${script}") after activating of e.g. Python 3. - Scripts of packages supporting multiple Python versions ignore active Python version. - Scripts of packages supporting multiple Python versions cannot be easily (without necessity of using of e.g. "python3.1 /usr/bin/${script}") executed with a Python version different than active Python version. The best solution, which removes these 2 disadvantages and preserves the advantage, seems to be to rename Python scripts to include Python version [1] in filenames, and create wrapper scripts, which call appropriate target scripts [2]. Some files sometimes try to execute e.g. "/usr/bin/python /usr/bin/${script}", so wrapper scripts must be implemented in Python. Wrapper scripts try to execute "${wrapper_script}-${PYTHON_ABI}" files (e.g. "py.test" will execute "py.test-3.1", when Python 3.1 is set as active Python version). distutils.eclass will automatically rename some scripts [3] in "${D}usr/bin" and call the function, which generates wrapper scripts. In case somebody is interested in reading of source code of python_generate_wrapper_scripts() function and potential suggesting of improvements, I'm attaching this function and 2 example wrapper scripts. I'm planning to commit addition of this function in next week. [1] Actually Python ABI. [2] Wrapper scripts can also be created for ELF target files (e.g. "mpipython"). [3] Only scripts of packages supporting installation for multiple Python versions will be renamed. Scripts, whose filenames end in [[:digit:]]+\.[[:digit:]]+, won't be renamed. -- Arfrever Frehtes Taifersar Arahesis