Select to view content in your preferred language

Remove arcgis as a dependency from arcpy

1511
7
07-13-2022 06:08 PM
Status: Implemented
DanPatterson
MVP Esteemed Contributor

In short, it may be nice to provide a simple package install for the bulk, but it makes it an unnecessary chore for others to produce simple alternate environments.

arcpy 3.0 py39_arcgispro_36030
------------------------------
file name   : arcpy-3.0-py39_arcgispro_36030.tar.bz2
name        : arcpy
version     : 3.0
build       : py39_arcgispro_36030
build number: 36030
size        : 5.4 MB
subdir      : win-64
url         : https://conda.anaconda.org/esri/win-64/arcpy-3.0-py39_arcgispro_36030.tar.bz2
md5         : 539ed0c88f7227faf15e91f34f0bd21c
timestamp   : 2022-05-27 19:30:14 UTC
dependencies:
  - arcgis 2.0.1.*
  - arcgispro 3.0.*
  - asn1crypto
  - azure-storage-blob

.... huge snip

 

There is no reason for it related to arcpy specifically, in fact it is the other way around (or shapely).

Better still "arcgisscripting" would be nice to package/install on its own.

 

7 Comments
ShaunWalbridge
Status changed to: In Product Plan

There will be some user education required to use a package of this type, as some GP tools will fail to execute without the full set of dependencies. That said,   agree this is worthwhile doing for advanced users using ArcPy outside the default environment.

DanPatterson

Great Shaun...

If you need some testers, let me know 😉

 

AmeliaBradshaw
Status changed to: Implemented

This Idea has been implemented in ArcGIS Pro 3.1. Please see the What's New documentation for more new features in Pro 3.1.

The Ideas in ArcGIS Pro 3.1 blog will be wrapped up soon, highlighting all Ideas implemented in this release, including this one. Once complete, I will add the link to this comment. 

DanPatterson

It seems to have slipped back in for 3.1

"...\envs\arcgispro-py3\conda-meta\arcpy-3.1-py39_arcgispro_41759.json"
{
  "arch": "x86_64",
  "build": "py39_arcgispro_41759",
  "build_number": 41759,
  "channel": "https://conda.anaconda.org/esri/win-64",
  "constrains": [],
  "depends": [
    "appdirs",
    "arcgis 2.1.0.*",
    "arcpy-base 3.1 py39_41759",
ShaunWalbridge

Because the arcpy package label already mapped to the full Python distribution we provide by default, we introduced the new arcpy-base package which includes only the minimal dependencies for Geoprocessing scripts. Separately, arcpy includes the full distribution (including the Python API), and pro_notebook_integration includes the specific packages needed for Notebooks inside of Pro.

DanPatterson

Shaun, tried it but ....matplotlib, pillow, ...scipy were needed.

currently having good luck with a pip install of what I needed, then ags

import arcgisscripting as ags

dir(ags)

['ClearCredentials',
 'ExecuteAbort',
 'ExecuteError',
 'ExecuteWarning',
 'Extent',
...snip...

locals().keys()
dict_keys(['__name__', '__doc__', '... 'get_ipython', ...
 'np', ... 'math', 'numpy', 'ags',... 'scipy',...'matplotlib'...)

no problems so far

ShaunWalbridge

OK, yes the goal with arcpy-base is to strip out all non-critical packages, and move those which are normally included but not critical into arcpy. You can evaluate the versions we include by looking at the arcpy file information for the version you're installing, e.g. we ship scipy >=1.5.2 for Pro 3.1. I think including only the minimal set of things is the right way to break this up since different users will need different sets of things beyond the arcpy-base set, and if they need 1:1 mapping with Pro, they can use the full ArcPy package.