Testing Unified Installer on Windows (Plone 5.2.1, Python 2.7)

@Adomy I finally have a Windows machine to test with properly. In your original post, I wonder if you had forgotten a space between the --password and --target arguments. Also, there was no need to specify so many things on the command line. Try windows_install.bat standalone --password=admin so it uses the defaults.

My testing so far has been with Python 2.7.

  1. I have seen a problem with the way the pip command is run. It currently looks for supplied zc.buildout and setuptools packages to install. I need to test further.

  2. The name of the extracted virtualenv directory has changed, so now the script must look for the extracted directory named pypa-virtualenv* instead.

  3. pip install pywin32 pypiwin32 is needed

  4. Running the bin\instance results in an error opening up a socket because on Windows we need to use AF_INET instead of AF_UNIX

    ..\Plone\zinstance\bin\instance.exe fg
    Traceback (most recent call last):
    File "C:\Users\capyb\Plone\zinstance\bin\instance-script.py", line 274, in
    + sys.argv[1:]))
    File "c:\users\capyb\plone\buildout-cache\eggs\plone.recipe.zope2instance-6.5.1-py2.7.egg\plone\recipe\zope2instance\ctl.py", line 988, in main
    c = ZopeCmd(options)
    File "c:\users\capyb\plone\buildout-cache\eggs\zdaemon-4.3-py2.7.egg\zdaemon\zdctl.py", line 124, in init
    self.get_status()
    File "c:\users\capyb\plone\buildout-cache\eggs\plone.recipe.zope2instance-6.5.1-py2.7.egg\plone\recipe\zope2instance\ctl.py", line 469, in get_status
    ZDCmd.get_status(self)
    File "c:\users\capyb\plone\buildout-cache\eggs\zdaemon-4.3-py2.7.egg\zdaemon\zdctl.py", line 242, in get_status
    resp = self.send_action("status")
    File "c:\users\capyb\plone\buildout-cache\eggs\zdaemon-4.3-py2.7.egg\zdaemon\zdctl.py", line 218, in send_action
    sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
    AttributeError: 'module' object has no attribute 'AF_UNIX'

I will do some more testing and then will release an updated installer.

1 Like

...now I'm getting "This app can't run on your PC". Windows sure is a joy :cry:

https://duckduckgo.com/?q=python+this+app+can't+run+on+your+pc&t=h_&ia=web

Now a different error. This is fun! :sob:

C:\Users\capyb\Plone\zinstance>\Users\capyb\Plone\Python-2.7\Scripts\buildout.exe
Unused options for buildout: 'backups-dir' 'deprecation-warnings'.
Installing instance.
Getting distribution for 'pyrsistent==0.15.6'.
WARNING: The easy_install command is deprecated and will be removed in a future version.
error: CRC check failed 0xc414a55bL != 0xf44c1489L
An error occurred when trying to install c:\users\capyb\plone\buildout-cache\downloads\dist\pyrsistent-0.15.6.tar.gz. Look above this message for any errors that were output by easy_install.
While:
  Installing instance.
  Getting distribution for 'pyrsistent==0.15.6'.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File "c:\users\capyb\plone\python-2.7\lib\site-packages\zc\buildout\buildout.py", line 2174, in main
    getattr(buildout, command)(args)
  File "c:\users\capyb\plone\python-2.7\lib\site-packages\zc\buildout\buildout.py", line 817, in install
    installed_files = self[part]._call(recipe.install)
  File "c:\users\capyb\plone\python-2.7\lib\site-packages\zc\buildout\buildout.py", line 1603, in _call
    return f()
  File "c:\users\capyb\plone\buildout-cache\eggs\plone.recipe.zope2instance-6.5.1-py2.7.egg\plone\recipe\zope2instance\recipe.py", line 146, in install
    installed.extend(self.install_scripts())
  File "c:\users\capyb\plone\buildout-cache\eggs\plone.recipe.zope2instance-6.5.1-py2.7.egg\plone\recipe\zope2instance\recipe.py", line 830, in install_scripts
    requirements, ws = self.egg.working_set(['plone.recipe.zope2instance'])
  File "c:\users\capyb\plone\buildout-cache\eggs\zc.recipe.egg-2.0.7-py2.7.egg\zc\recipe\egg\egg.py", line 87, in working_set
    allow_unknown_extras=bool_option(buildout_section, 'allow-unknown-extras')
  File "c:\users\capyb\plone\buildout-cache\eggs\zc.recipe.egg-2.0.7-py2.7.egg\zc\recipe\egg\egg.py", line 168, in _working_set
    allow_unknown_extras=allow_unknown_extras)
  File "c:\users\capyb\plone\python-2.7\lib\site-packages\zc\buildout\easy_install.py", line 957, in install
    return installer.install(specs, working_set)
  File "c:\users\capyb\plone\python-2.7\lib\site-packages\zc\buildout\easy_install.py", line 730, in install
    for dist in self._get_dist(req, ws):
  File "c:\users\capyb\plone\python-2.7\lib\site-packages\zc\buildout\easy_install.py", line 574, in _get_dist
    dists = [_move_to_eggs_dir_and_compile(dist, self._dest)]
  File "c:\users\capyb\plone\python-2.7\lib\site-packages\zc\buildout\easy_install.py", line 1745, in _move_to_eggs_dir_and_compile
    [tmp_loc] = glob.glob(os.path.join(tmp_dest, '*'))
ValueError: need more than 0 values to unpack
Failed Windows build with error code: 1; Aborting.

Hello to the community
Thank you @Kim for your response.
I just checked on the original document. I respected the space between the passord and target arguments.
It was when I changed the password to XXX ... that the space was deleted.
So all is well on that side.
I tried to launch the installation script with password = admin and without specifying the installation directory(arget arguments) to see the result.
Here's what it looks like:

“Microsoft Windows [version 10.0.18363.592]

(c) 2019 Microsoft Corporation. Tous droits réservés.

C:\WINDOWS\system32>cd \

C:\>cd Plone-5.2.1-UnifiedInstaller-r2

C:\Plone-5.2.1-UnifiedInstaller-r2>windows_install.bat standalone --password=admin

C:\Plone-5.2.1-UnifiedInstaller-r2>python helper_scripts\windows_install.py standalone --password=admin

File "helper_scripts\windows_install.py", line 97

print _("Creating target directory " + opt.target)

^

SyntaxError: invalid syntax

[C:\Plone-5.2.1-UnifiedInstaller-r2](../../../../../../Plone-5.2.1-UnifiedInstaller-r2)> “

In reality, efectively we can keep password = admin
and change it after plone is installed.
However under Windows, as we generally reserve partition C for the operating system, we are obliged to indicate
another partition to avoid trying to move after plone of its installation instance. As you know, it is never easy under Windows.
Once again thank you.

edit and modify it to

print "Creating target directory " + opt.target

_ is just for translating

@Adomy that is indeed a curious error. Which Python did you install?

Hello community,
Thank you for all your answers.
To answer the last question of @kim, the error which referred to line 97 was made with python 3.7.5.
So I changed the default python version using version 2.7.16. I add that in the meantime, I also made the change suggested by @Yuri.
The new error message refers to line 107.
There it is :
"Microsoft Windows [version 10.0.18363.657]
(c) 2019 Microsoft Corporation. Tous droits réservés.

C:\Users\Yoga-Siddhi>cd \

C:>cd Plone-5.2.1-UnifiedInstaller-r2

C:\Plone-5.2.1-UnifiedInstaller-r2>windows_install.bat standalone --password=admin

C:\Plone-5.2.1-UnifiedInstaller-r2>python helper_scripts\windows_install.py standalone --password=admin
Preparing python virtualenv
Traceback (most recent call last):
File "helper_scripts\windows_install.py", line 107, in
vepackagedir = glob.glob(os.path.join(opt.target, 'virtualenv*'))[0]
IndexError: list index out of range "

C:\Plone-5.2.1-UnifiedInstaller-r2>

In view of the results, can we conclude that plone 5.2.1 is not yet Windows compatible as well with python 2 as with python 3?
Thank you in advance for your help.

No, I’m certain Plone works fine. The issue is the installer because it is having to do extra to set up the Python and other requirements in ways that are unfamiliar to us. Today I am not working but I will continue to work on this

The latest issue you mention, using Py 2.7, is one I got past locally in my testing

Hello,
Thank you @Kim for the confirmation.
Now we know that with equivalent configuration, we have the same error messages. The error is therefore reproducible.

As Adomy, I got the same error message:
.
.
.
File "helper_scripts\windows_install.py", line 107, in
vepackagedir = glob.glob(os.path.join(opt.target, 'virtualenv*'))[0]
IndexError: list index out of range "
.
.
Has it something to do where the python directories are stored?
Thanks for your help!