VirtualEnvOnDemand.InstallPackages
index
/home/media/projects/VirtualEnvOnDemand/VirtualEnvOnDemand/InstallPackages.py

InstallPackages - Methods/Classes for installing packages into an existing env,
  using pip

 
Modules
       
imp
os
subprocess
sys
tempfile

 
Functions
       
ensureImport(importName, venvDir, packageName=None, stdout=None, stderr=None)
ensureImport - Try to import a module, and upon failure to import try to install package into provided virtualenv
 
@param importName <str> - The name of the module to import
@param venvDir <str/VirtualEnvInfo> - The path to a virtualenv, likely created by createEnv or the global env (fetched via getGlobalVirtualEnvInfo()).
@param packageName <str/None> - If the package name differs from the import name (like biopython package provides "Bio" module), install this package if import fails. This may contain version info (like AdvancedHTMLParser>6.0)
@param stdout <stream/None> - Stream to use for stdout as package info, or None to silence. Default None. NOTE: This differs from elsewhere where sys.stdout is default.
@param stderr <stream/None> - Stream to use for stderr as package info, or None to silence. Default None. NOTE: This differs from elsewhere where sys.stderr is default.
 
@return - The imported module
 
@raises - ImportError if cannot import.
 
    NOTE: With this method, PipInstallFailed will be intercepted and ImportError thrown instead, as this is intended to be a drop-in replacement for "import" when the package name differs.
generateRequirementsTxt(packages)
generateRequirementsTxt - Generates a requirements.txt suitable for pip to ingest based on packages param.
 
    @param packages - Describes the required packages. Takes one of the following forms:
 
        String - Directly becomes contents of requirements.txt file to be ingested by pip
        List   - A list/tuple/set of package names (optionally including version requirements, e.x. MyPkg==1.2.3)
        Dict   - A dictionary of package names to versions. If no value is present, the latest will be fetched.
 
    @return <str> - generated requirements.txt file contents
installPackages(packages, venvDir, stdout=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>, stderr=<_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>)
installPackages - Installs packages into a created virtual environment
 
    @param packages - Describes the required packages. Takes one of the following forms:
 
        String - Directly becomes contents of requirements.txt file to be ingested by pip
        List   - A list/tuple/set of package names (optionally including version requirements, e.x. MyPkg==1.2.3)
        Dict   - A dictionary of package names to versions. If no value is present, the latest will be fetched.
 
    @param venvDir <str/VirtualEnvInfo> - Path to a created virtualenv directory. This should be the 'virtualenvDirectory' key from the return of createEnv, or just the VirtualEnvInfo object itself will work.
    @param stdout <iostream/None> - Stream to be used as stdout for installation. Default is sys.stdout. Use "None" to swallow output.
    @param stderr <iostream/None> - Stream to be used as stderr for installation. Default is sys.stderr. Use "None" to swallow output.
 
    @return - The generated requirements.txt used to install packages.
 
    @raises - 
        VirtualEnvOnDemand.exceptions.PipInstallFailed -  if cannot install packages
        VirtualEnvOnDemand.exceptions.VirtualEnvDoesNotExist - If given venvDir does not exist
        Others (Exception, etc)                        -  If permissions problem to write to specified directory, etc

 
Data
        __all__ = ('installPackages', 'ensureImport', 'generateRequirementsTxt')
__warningregistry__ = {'version': 0, ("the imp module is deprecated in favour of import...e the module's documentation for alternative uses", <class 'PendingDeprecationWarning'>, 9): True}