Skip to Main Content
Spotfire Ideas Portal
Status Unlikely to implement
Product Spotfire
Categories Data Functions
Created by Guest
Created on Jul 14, 2023

add option to trust PyPI sites for installing python packages to Analyst

Some of our customers are seeing below error when using Python Tools to manage python packages. (possible due to proxy server is enforcing SSL inspection on HTTS communications including PyPI)

2023-07-14T08:55:42,837+09:00 2023-07-13 23:55:42,837 user1 [50] WARN Spotfire.Dxp.Forms.Data.Tools.PythonToolsDialog [(null)] - Unable to contact Python Package Index: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)'))': /simple/pip-install-test/

This issue can be solved by running below command to trust all PyPI sites.

python.exe -m pip config set global.trusted-host ""

However above command must be executed on all Analyst machines that affected by this error. (We know there are other approaches e.g. SPK to manage Python packages as well)

So customer hopes that Spotfire can for example add a preference to DataFunctionsPreferences to allow to specify a list of sites that are trusted by pip command for all Analyst clients globally.

  • Attach files
  • Admin
    Miguel Díez
    Sep 7, 2023

    Hi Wei,

    In pip, it is possible to set environment variables ( or configure settings for repeatable actions ( to a section of within a pip configuration file.

    As you mentioned, you can also achieve the same with: pip config set global.trusted-host="".

    Such environment configuration is something that is typically done with remote automation by IT admins for the Analyst machines (as other tasks like firewall, software and policies updates)

    This means that this is not something that needs to be added to Spotfire, since it is something already supported by the Python tooling.

    Let me know if this works for you.