Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ENH] New windows installer scripts #2338

Merged
merged 3 commits into from
Jun 29, 2017
Merged

Conversation

ales-erjavec
Copy link
Contributor

Issue

Improve windows installers.

Description of changes

There are now two installer flavors. One for standard python.org distribution and one for (Ana|Mini)conda distribution. They both create/install into a separate environment.

General improvements:

  • Better (un)installer logging (log is left in $TEMP)
  • Validate target directory
  • Helper launchers to execute application attached to the console with max log level
  • Helper launchers to open Command Prompt with activated env
Includes
  • Code changes
  • Tests
  • Documentation

@codecov-io
Copy link

codecov-io commented May 29, 2017

Codecov Report

Merging #2338 into master will decrease coverage by 0.11%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2338      +/-   ##
==========================================
- Coverage   74.31%   74.19%   -0.12%     
==========================================
  Files         320      322       +2     
  Lines       55799    55933     +134     
==========================================
+ Hits        41468    41501      +33     
- Misses      14331    14432     +101

@ales-erjavec
Copy link
Contributor Author

ales-erjavec commented May 30, 2017

Example installers are being built on appveyor and can be downloaded from the individual job's artifacts page.

@ajdapretnar
Copy link
Contributor

ajdapretnar commented Jun 16, 2017

I can't get the artifact for the failing Miniconda installation. The other installer works nicely.

Nevermind, looks like there's a new push pending. :)

@ales-erjavec
Copy link
Contributor Author

A fixed version is building right now.


AnyQt==0.0.8
numpy==1.12.1
scipy==0.16.1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is still relevant, could you also update scipy to 0.19 because of #2367?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If there existed freely available/redistributable scipy binary packages we would not be stuck in this mess in the first place [*].

Also scipy v0.16.1 is not affected by that only 0.17, and 0.18 are.

[*] It actually might be completely fine to use MKL now. Intel changed licence for MKL redistributables to Intel Simplified Software License which is a lot more friendly.

@markotoplak
Copy link
Member

markotoplak commented Jun 16, 2017

Windows 7, 64 bit

Output` folder: C:\Users\marko\AppData\Local\Temp\nsy14A5.tmp\Orange-installer-data
Extract: Miniconda3-4.3.14-Windows-x86_64.exe
Installing Miniconda 4.3.14
Executing: cmd.exe /C "C:\Users\marko\AppData\Local\Temp\nsy14A5.tmp\Orange-installer-data\Miniconda3-4.3.14-Windows-x86_64.exe"  /InstallationType=AllUsers 
Creating an new conda env in "C:\Program Files (x86)\Orange"
Output folder: C:\Users\marko\AppData\Local\Temp\nsy14A5.tmp\Orange-installer-data\conda-pkgs
Extract: anyqt-0.0.8-py36_0.tar.bz2
Extract: bottleneck-1.2.1-np112py36_0.tar.bz2
Extract: chardet-3.0.3-py36_0.tar.bz2
Extract: conda-spec.txt
Extract: dill-0.2.6-py36_0.tar.bz2
Extract: docutils-0.13.1-py36_0.tar.bz2
Extract: icu-57.1-vc14_0.tar.bz2
Extract: install.bat
Extract: joblib-0.11-py36_0.tar.bz2
Extract: jpeg-9b-vc14_0.tar.bz2
Extract: keyring-9.0-py36_0.tar.bz2
Extract: keyrings.alt-1.2-py36_0.tar.bz2
Extract: libpng-1.6.27-vc14_0.tar.bz2
Extract: mkl-2017.0.1-0.tar.bz2
Extract: numpy-1.12.1-py36_0.tar.bz2
Extract: openssl-1.0.2l-vc14_0.tar.bz2
Extract: orange3-3.5.0.dev0+7083fd4-py36_0.tar.bz2
Extract: pip-9.0.1-py36_1.tar.bz2
Extract: pyqt-5.6.0-py36_2.tar.bz2
Extract: pyqtgraph-0.10.0-py36_0.tar.bz2
Extract: pyreadline-2.1-py36_0.tar.bz2
Extract: python-3.6.1-2.tar.bz2
Extract: pywin32-220-py36_2.tar.bz2
Extract: qt-5.6.2-vc14_4.tar.bz2
Extract: scikit-learn-0.18.1-np112py36_1.tar.bz2
Extract: scipy-0.18.1-np112py36_1.tar.bz2
Extract: setuptools-27.2.0-py36_1.tar.bz2
Extract: sip-4.18-py36_0.tar.bz2
Extract: vs2015_runtime-14.0.25123-0.tar.bz2
Extract: wheel-0.29.0-py36_0.tar.bz2
Extract: xlrd-1.0.0-py36_0.tar.bz2
Extract: zlib-1.2.8-vc14_3.tar.bz2
Output folder: C:\Users\marko\AppData\Local\Temp\nsy14A5.tmp\Orange-installer-data\conda-pkgs
Installing packages (this might take a while)
Executing: cmd.exe /c install.bat "C:\Program Files (x86)\Orange" "C:\ProgramData\Miniconda3\Scripts\conda.exe"
Creating a conda env in "C:\Program Files (x86)\Orange"
Fetching package metadata .............
Solving package specifications: 
Package plan for installation in environment C:\Program Files (x86)\Orange:

#
# To activate this environment, use:
# > activate C:\Program Files (x86)\Orange
#
# To deactivate this environment, use:
# > deactivate C:\Program Files (x86)\Orange
#
# * for power-users using bash, you must source
#

An unexpected error has occurred.
Please consider posting the following information to the
conda GitHub issue tracker at:

    https://github.com/conda/conda/issues



Current conda install:

               platform : win-64
          conda version : 4.3.14
       conda is private : False
      conda-env version : 4.3.14
    conda-build version : not installed
         python version : 3.6.0.final.0
       requests version : 2.12.4
       root environment : C:\ProgramData\Miniconda3  (writable)
    default environment : C:\ProgramData\Miniconda3
       envs directories : C:\ProgramData\Miniconda3\envs
                          C:\Users\marko\AppData\Local\conda\conda\envs
                          C:\Users\marko\.conda\envs
          package cache : C:\ProgramData\Miniconda3\pkgs
                          C:\Users\marko\AppData\Local\conda\conda\pkgs
           channel URLs : https://conda.anaconda.org/conda-forge/win-64
                          https://conda.anaconda.org/conda-forge/noarch
                          https://repo.continuum.io/pkgs/free/win-64
                          https://repo.continuum.io/pkgs/free/noarch
                          https://repo.continuum.io/pkgs/r/win-64
                          https://repo.continuum.io/pkgs/r/noarch
                          https://repo.continuum.io/pkgs/pro/win-64
                          https://repo.continuum.io/pkgs/pro/noarch
                          https://repo.continuum.io/pkgs/msys2/win-64
                          https://repo.continuum.io/pkgs/msys2/noarch
            config file : C:\Users\marko\.condarc
           offline mode : False
             user-agent : conda/4.3.14 requests/2.12.4 CPython/3.6.0 Windows/7 Windows/6.1.7601



`$ C:\ProgramData\Miniconda3\Scripts\conda-script.py install --yes --copy --quiet --prefix C:\Program Files (x86)\Orange vs2015_runtime-14.0.25123-0.tar.bz2 python-3.6.1-2.tar.bz2`




    Traceback (most recent call last):
      File "C:\ProgramData\Miniconda3\lib\site-packages\conda\exceptions.py", line 573, in conda_exception_handler
        return_value = func(*args, **kwargs)
      File "C:\ProgramData\Miniconda3\lib\site-packages\conda\cli\main.py", line 134, in _main
        exit_code = args.func(args, p)
      File "C:\ProgramData\Miniconda3\lib\site-packages\conda\cli\main_install.py", line 80, in execute
        install(args, parser, 'install')
      File "C:\ProgramData\Miniconda3\lib\site-packages\conda\cli\install.py", line 200, in install
        explicit(args.packages, prefix, verbose=not context.quiet)
      File "C:\ProgramData\Miniconda3\lib\site-packages\conda\misc.py", line 97, in explicit
        link_names = {index[d]['name'] for d in link_dists}
      File "C:\ProgramData\Miniconda3\lib\site-packages\conda\misc.py", line 97, in 
        link_names = {index[d]['name'] for d in link_dists}
    KeyError: Dist(_Dist__initd=True, channel='', dist_name='vs2015_runtime-14.0.25123-0', name='vs2015_runtime', version='14.0.25123', build_string='0', build_number=0, with_features_depends=None, base_url='file:///C:/Users/marko/AppData/Local/Temp/nsy14A5.tmp/Orange-installer-data/conda-pkgs', platform=None)

"Error creating a conda environment. conda command exited with "
'"0"' is not recognized as an internal or external command,
operable program or batch file.
Output folder: C:\Users\marko\AppData\Local\Temp\nsy14A5.tmp\Orange-installer-data\icons
Extract: OrangeOWS.ico
Extract: orange.ico
Output folder: C:\Users\marko\AppData\Local\Temp\nsy14A5.tmp\Orange-installer-data\icons
Create folder: C:\Program Files (x86)\Orange\share\orange3\icons
Copy to C:\Program Files (x86)\Orange\share\orange3\icons
Output folder: C:\Program Files (x86)\Orange
Creating launcher shortcuts
Create shortcut: C:\Program Files (x86)\Orange\Orange.lnk
Create shortcut: C:\Program Files (x86)\Orange\Orange Debug.lnk
Create shortcut: C:\Program Files (x86)\Orange\Orange Command Prompt.lnk
Creating Start Menu Shortcuts
Create folder: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Orange
Create shortcut: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Orange\Orange.lnk
Installing Desktop shortcurt
Create shortcut: C:\Users\Public\Desktop\Orange.lnk
Writing to registry
Created uninstaller: C:\Program Files (x86)\Orange\Orange-Uninstall.exe
Completed

@ajdapretnar
Copy link
Contributor

I had some issues with Anaconda already installed on my computer, but with a clean installation everything was smooth. I'm not sure my case is quite replicable (or drop by to test if required).

@ales-erjavec
Copy link
Contributor Author

@ajdapretnar Should now be more resilient to older conda installs.
@markotoplak I cannot duplicate the error on win 8.1. But it should now correctly stop with the installation on an error.

@markotoplak
Copy link
Member

markotoplak commented Jun 16, 2017

@ales-erjavec I still get "Setup was completed successfully" even though the error is the same.

@markotoplak markotoplak removed this from the 3.4.4 milestone Jun 16, 2017
* Use delayed expansion for ERRORLEVEL inside blocks.
* Use full absolute paths to packages for compatibility with
  conda 4.2.12
* conda create call compatible with conda <= 4.1.11
@astaric astaric merged commit 522bb92 into biolab:master Jun 29, 2017
@ales-erjavec ales-erjavec deleted the win-app-reboot branch November 14, 2017 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants