This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2008年12月11日 21:16 by theller, last changed 2022年04月11日 14:56 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| wininst-compat.patch | dbn, 2013年09月10日 12:57 | Run bdist_wininst install scripts in 2/3 compatibile environment | review | |
| wininst-compat-2.7.patch | dbn, 2013年09月10日 12:58 | (2.7) Run bdist_wininst install scripts in 2/3 compatibile environment | ||
| wininst-10.0-compat.exe | dbn, 2013年09月10日 12:59 | default/3.3 rebuilt wininst stub | ||
| wininst-9.0-compat-2.7.exe | dbn, 2013年09月10日 12:59 | 2.7 rebuilt wininst stub | ||
| Messages (8) | |||
|---|---|---|---|
| msg77631 - (view) | Author: Thomas Heller (theller) * (Python committer) | Date: 2008年12月11日 21:16 | |
Running a bdist_wininst installer that contains a install script, with python 3, raises an exception. This is displayed in the gui: ImportError: No module named __builtin__ *** run_installscript: internal error 0xFFFFFFFF *** This is probably because the bdist_wininst installer stubs (in the Lib/distutils/command subdirectory) have not been recompiled after changing the sources. |
|||
| msg112431 - (view) | Author: Éric Araujo (eric.araujo) * (Python committer) | Date: 2010年08月02日 08:56 | |
Can you still reproduce in 3.1 and 3.2? |
|||
| msg153681 - (view) | Author: Éric Araujo (eric.araujo) * (Python committer) | Date: 2012年02月19日 09:14 | |
The crash message is the same as the one in #4918; it looks like bdist_wininst need better error reporting. |
|||
| msg190439 - (view) | Author: Matt Wilkie (Matt.Wilkie) | Date: 2013年06月01日 06:13 | |
I confirm this is happening with 3.2.4 from an installer generated in 2.7.4 (64bit Win7, 32bit python): https://pypi.python.org/pypi/leo/4.11.devel-build-5802 |
|||
| msg197436 - (view) | Author: Dan Nicholson (dbn) | Date: 2013年09月10日 12:57 | |
It turns out this is pretty easy to fix by just changing the stub to import builtins or __builtin__ depending on the python install version. Attached are patches that fix this for both the default and 2.7 branches. My test case is a pure python module with an install script. I've rebuilt the wininst stub for both default (3.3) with VS2010 Express and 2.7 with VS2008 Express. I then built installers and ran them in both directions: installer created with python-2.7 and installed into python-3.3, and an installer created with python-3.3 and installed into python-2.7. Both worked fine with no warnings. I've attached the stubs I built in case they're helpful. wininst-10.0-compat.exe is the 32 bit stub for default/3.3. wininst-9.0-compat-2.7.exe is the 32 bit stub for 2.7. |
|||
| msg197442 - (view) | Author: Éric Araujo (eric.araujo) * (Python committer) | Date: 2013年09月10日 14:37 | |
I think the exe files are specific to one Python version, so the version check would not be necessary. I may be wrong though, as I’m not a windows dev or user, so I’m adding Mark to this issue. |
|||
| msg197818 - (view) | Author: Dan Nicholson (dbn) | Date: 2013年09月15日 19:27 | |
Right, that's what makes this difficult. If the stub exe of the target python was used, then it wouldn't need to care about compatibility. However, what you're running is the stub of the build python. So, when I distribute a bdist_wininst exe, it's running the stub from my python on the user's machine. That introduces a few compatibility issues. 1. The exe needs the same CRT version installed on the target that it was built with. It would fail to run immediately in this case. This does make having the built python be newer than the target python a little difficult. 2. The exe loads the python dll on the target machine. This requires the python dll to have enough compatibility for the usage of the python API in the exe of the build version. 3. After loading the python dll, python code is run in the target python. This is the problem I'm trying to solve here. The python code is embedded in the exe of the installer, so the compatibility with the target python has to be considered at build time. The situation you're describing where the wininst of the target is run could maybe be made to work, but it would be a larger project. |
|||
| msg384826 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2021年01月11日 12:52 | |
The distutils bdist_wininst command has been removed in Python 3.10: see bpo-42802. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:56:42 | admin | set | github: 48886 |
| 2021年01月11日 12:52:11 | vstinner | set | status: open -> closed nosy: + vstinner messages: + msg384826 resolution: wont fix stage: test needed -> resolved |
| 2013年09月15日 19:27:34 | dbn | set | messages: + msg197818 |
| 2013年09月10日 14:37:24 | eric.araujo | set | nosy:
+ mhammond messages: + msg197442 |
| 2013年09月10日 12:59:37 | dbn | set | files: + wininst-9.0-compat-2.7.exe |
| 2013年09月10日 12:59:16 | dbn | set | files: + wininst-10.0-compat.exe |
| 2013年09月10日 12:58:31 | dbn | set | files: + wininst-compat-2.7.patch |
| 2013年09月10日 12:57:51 | dbn | set | files:
+ wininst-compat.patch nosy: + dbn messages: + msg197436 keywords: + patch |
| 2013年06月01日 06:13:51 | Matt.Wilkie | set | nosy:
+ Matt.Wilkie messages: + msg190439 |
| 2012年02月19日 09:14:17 | eric.araujo | set | assignee: tarek -> eric.araujo stage: test needed messages: + msg153681 versions: - Python 3.0 |
| 2010年08月02日 08:56:53 | eric.araujo | set | nosy:
+ eric.araujo messages: + msg112431 |
| 2009年02月06日 01:29:17 | tarek | set | assignee: tarek nosy: + tarek |
| 2008年12月11日 21:16:07 | theller | create | |