Table of Contents

Created by: gwideman, Oct 17, 2013 6:41 pm
Revised by: gwideman, Oct 18, 2013 2:18 am (5 revisions)

2013-10-17 Work in progress

Overview

Notes regarding a number of Python environment topics which are individually more complex than expected, and perniciously entangled with each other. For now, I'm just trying to get a handle on the landscape.

List of topics

... and their complexities and entanglements
Topic
Complexities
Entanglements
Launch of python, or python script
Multiple launch methods (feature)
  • Which OS
  • Which python version
  • Windows:
    • With/without Launcher
    • File associations
    • Registry
  • PATH, PATHEXT
  • Python environment variables
  • Installation method and choices
Choice of python language version

  • Tied to default library installation path
What python interpreter "installation" consists of
  • MSI adds registry entries, but...
  • "Standalone" installation doesn't need to involve registry (how is this performed?)

Conflict vs "system" version of Python
For OSs where some of the OS utilities are written in Python (MacOS, Linux, not Windows), it's important not to disrupt the installation of Python that the system relies upon.
Python vs OS.
Python launcher
Multi ways to configure, or command it.
  • What python versions installed?
  • Doesn't solve python-version tied to libraries issue.
  • Barely cooperates with virtual environments (and then not until 3.4)
  • Availability of additional libraries
    • Third-party
    • Under local developed
  • sys.path
  • Tied to particular python installation
Association python version requirements to a python script or app (and fulfilling same)
  • shebang?

Associating library and other dependency requirements to a python script or app (and fulfilling same)
  • import requests, but otherwise doesn't make the availability happen
  • Development, IDE
  • Deployment tools?
Development of libraries separate from development of main app ("program", main "script")


Virtual environment, venv
  • What granularity of sets of python scripts suit a separate virt env?
  • To what extent and how conveniently can a virtual env be switched in and out as the default? (Activation only changes PATH)
*
  • "activation", PATH
  • Interplay with launch variants
  • Interplay with installers?
  • Directory structure for project
    • For "main executable(s)" ("script", "program" -- user-launchable)
    • For libraries, particularly those under local development

  • sys.path
  • import behavior
Development using an IDE (eg: WingWare)

  • Project layout
  • Dependencies
  • Testing
  • Deployment
Deployment; packaging for deployment, deployment tools
  • Confusing landscape of python deployment-related tools, libraries, procedures
  • Eggs, vs???
  • Arranging for third-party dependencies (libraries or?) to get downloaded and installed (or included in the distributable)
  • Project directory structure
  • Online repositories
Version control
  • Method to attach version info to packages/modules?

Testing
  • Where to put tests and how to name them.
  • How to run tests
  • Project structure
  • IDE
  • Deployment/packaging