6

Sometimes when I run a Python script from IDLE that uses the ArcPy installed with ArcGIS Pro 1.4.1 the script will abort with RuntimeError: Not signed into Portal:

RESTART: C:\temp\test.py 
Traceback (most recent call last):
  File "C:\temp\test.py", line 9, in <module>
    import arcpy
  File "C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\__init__.py", line 66, in <module>
    from arcpy.geoprocessing import gp
  File "C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\geoprocessing\__init__.py", line 14, in <module>
    from ._base import *
  File "C:\Program Files\ArcGIS\Pro\Resources\ArcPy\arcpy\geoprocessing\_base.py", line 14, in <module>
    import arcgisscripting
RuntimeError: Not signed into Portal.

If I do nothing other than run the script again, in exactly the same way, using the same Python shell and script windows, then it will usually just work. Very occasionally I may have to try running it a third time. At a very rough estimate it works 90% first time, 9% second time and 1% third time.

I have seen the same error on two machines running two versions and two different license sources:

  • ArcGIS Pro 1.4.1 sourcing its license from ArcGIS for Portal
  • ArcGIS Pro 1.3.1 sourcing its license from ArcGIS Online

In both configurations I have not tested using Authorize ArcGIS Pro to work offline so all tests have been run while working online.

Does anyone know a likely cause for this error, and any way to try and avoid it occurring?

The same error seems to have been seen deep in a GeoNet forum thread and suggests that it is related to logging out of ArcGIS Online while running the script. However, I am running my script while ArcGIS Pro is open (but not being used), and I am not logged in via a browser to ArcGIS.com so I think the advice offered there does not apply.

4

As you're licensed ArcGIS Pro from portal/online, I suspect you have not "authorized ArcGIS Pro to work offline" (an option available in the backstage).

I bring this up, as the error you're getting, about not being signed in, is most likely due to the session expiring or not being able to refresh itself. Python does not have a direct way to authenticate to the portal to license Pro. It relies on Pro to be licensed. (And you authenticate your license when using a named user by signing into the portal via the popup box)

So what to do? Like I said, you can authorize Pro to work offline from the backstage. Otherwise if you encounter this error you'll need to open Pro and "refresh" your connection to the license.

Note - being logged into arcgis.com via a browser has absolutely nothing to do with licensing Pro. You might be using the same account, but being logged in there does not authenticate ArcGIS Pro.

This may not answer your question specifically. It answers the generic "I get an error about not being logged in when running my stand alone script". You've stated:

I am running my script while ArcGIS Pro is open

....because of that, I can't explain why you'd receive the error.

  • You've taught me a little more about the licensing considerations and options available so I'm happy to accept your answer even though it sounds like I should not see this error. At least I now have confidence that if it becomes an issue for my users then I can recommend that they try working offline, at least temporarily. – PolyGeo May 3 '17 at 22:34
  • 1
    I've seen you use the term backstage here a couple of times recently and have figured that it is what I have been calling the "project page". I notice that the term only appears once in all of ArcGIS Pro's web help (excluding SDK): desktop.arcgis.com/search/… I'm assuming that it is a term that I should switch to using if I want to stay in sync with ArcGIS Pro's designers. It is a term I like and I think it might be useful to change the PROJECT tab name to BACKSTAGE. – PolyGeo May 3 '17 at 22:39
  • 1
    I can't speak to the use of the term "backstage" in the doc.... I know Microsoft uses it: support.office.com/en-us/article/…. I just assume it's a standard term for settings in this place (whether or not that's correct I don't know) – KHibma May 3 '17 at 22:47
  • I guess I should be saying "application options" pro.arcgis.com/en/pro-app/get-started/… – KHibma May 3 '17 at 22:48
  • This is still an issue at Pro 2.3.2. Opening up Pro to "refresh" my connection worked for me. – Chad Cooper May 15 at 21:54
2

You could try using "propy.bat" or "proenv.bat".

One loads environments for stand-alone scripts and the other loads the environment for an interactive session.

http://pro.arcgis.com/en/pro-app/arcpy/get-started/using-conda-with-arcgis-pro.htm

  • 1
    I'm not currently in a position to test this because that environment is only available at one of my sites. I'll look back at your answer if it arises as an issue there or anywhere else. – PolyGeo Jan 23 '18 at 22:32
2

I had this same error, and was able to resolve it with the help of the above 2 answers. I used propy.bat as my python executable, and I ran it in an administrator shell. Apparently the sign-in portal validation with arcpy needs to happen with administrator elevation.

1

Use the SignInToPortal python function at the beginning of your Python script. This should force it to sign into the portal.

http://pro.arcgis.com/en/pro-app/arcpy/functions/signintoportal.htm

Something like:

import arcpy
arcpy.SignInToPortal(arcpy.GetActivePortalURL(), 'username', 'password')

or

import arcpy
arcpy.SignInToPortal('https://www.arcgis.com/', 'username', 'password')

should do the trick. If you open Pro, click Project, then click Portals, you can see the portal URL on screen.

  • 2
    This doesn't work in my case, since it's the import arcpy line which causes the RuntimeError: Not signed into Portal error message. ie there's no chance to even run the SignInToPortal command – Stephen Lead Jan 17 at 2:04
  • 1
    @StephenLead yes you are right. I signed out of the portal on ArcGIS Pro then tried to run my script: it did indeed fail with the error you mentioned. Hmmm... I need another solution. – Theo F Jan 17 at 11:08
  • 1
    I can confirm that if the "authorize ArcGIS Pro to work offline" setting has been checked on, it's possible to import arcpy, and thereafter to use the SignInToPortal command. You can put the import arcpy line inside a try/except block to handle the import error – Stephen Lead Jan 24 at 22:04
  • For those looking, this is how you can "authorize ArcGIS Pro to work offline": pro.arcgis.com/en/pro-app/get-started/… The caveat here is this locks that user account to only be able to use Pro on that one machine. However, if you only run scripts from one server, and can afford to lock up a license, this is the way to go. – alexGIS Jul 19 at 16:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.