classification
Title: Installer should be a 64-bit executable
Type: behavior Stage: resolved
Components: Installation, Windows Versions: Python 3.7, Python 3.6
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: steve.dower Nosy List: jftuga, paul.moore, steve.dower, tim.golden, zach.ware
Priority: normal Keywords:

Created on 2016-10-18 07:36 by jftuga, last changed 2016-10-18 16:20 by steve.dower. This issue is now closed.

Messages (4)
msg278844 - (view) Author: John Taylor (jftuga) * Date: 2016-10-18 07:36
The python-3.6.0b2-amd64.exe binary installs the 64-bit version of python, but the binary itself is only 32-bit.  I would like this to be a 64-bit binary so that Python can easily be installed on Windows Server 2016 Nano Server.  Since this OS version will only execute 64-bit binaries, Python can not be installed even with the /quiet option.

Ideally, I would like to be able to install Python with this command:

python-3.6.0b2-amd64.exe /quiet targetdir=C:\Python36
msg278872 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2016-10-18 13:10
Last time I spoke with the Nano Server team (admittedly this was 6-12 months ago) they had no plans to support MSI at all. Even though our installer is an exe, under the covers it is installing MSIs.

We discussed this and decided the best approach would be to install locally and then copy the install directory, as Nano Server already includes all the required dependencies. There are also packages on nuget that can install Python that should work fine.

However, as I'm a little out of date, please let me know if Nano Server has actually added support for MSIs and I can look into it.
msg278876 - (view) Author: John Taylor (jftuga) * Date: 2016-10-18 13:21
python-3.6.0b2-embed-amd64.zip will load the interpreter as is easy to install.  The Python Embedded Distribution documentation mentions needing ucrtbase.dll, which is already installed on Nano Server.

One small pain point is that ctrl-z seems to exit/suspend the docker container and drop you back to the host.  Under the normal, non-embedded python, you can just run exit() to quit the interpreter.  Since this option is not available under the embedded version, you have to import sys; sys.exit() to quit the interpreter under Nano Server.  Also, there is no pip.exe.

Thank you for the information regarding MSI which I was not aware of.  Upon further consideration, I believe this issue can be closed because the embedded distribution works on Nano Server.
msg278902 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2016-10-18 16:20
You can also modify the "python36._pth" file in the embedded distro to include "import site" if you want all the stuff that comes with that.

The intent of the embeddable distribution is to be a private dependency of a larger application, where you typically won't want the site module. 

It is also intended to be a developer resource that is extracted by the dev, modified, and then put into another installer - it's not meant to be automatically extracted and used on a target machine. Modifying the ._pth file is therefore "acceptable" given the purpose.

I've closed this as an issue. Hopefully I can convince the Nano Server guys to blog again (they did once before at https://blogs.msdn.microsoft.com/pythonengineering/2016/06/20/python-and-django-on-nano-server/)
History
Date User Action Args
2016-10-18 16:20:15steve.dowersetstatus: open -> closed
resolution: not a bug
messages: + msg278902

stage: resolved
2016-10-18 13:21:24jftugasetmessages: + msg278876
2016-10-18 13:10:35steve.dowersetmessages: + msg278872
2016-10-18 12:45:20zach.waresetassignee: zach.ware -> steve.dower
2016-10-18 08:07:14eryksunsetnosy: + paul.moore, tim.golden, steve.dower

components: + Windows
versions: + Python 3.7
2016-10-18 07:44:28matrixisesetassignee: zach.ware

nosy: + zach.ware
2016-10-18 07:36:23jftugacreate