POST
|
Hi Nils, My post is a bit dated and we have since moved on to an open-source solution. Both steps 1 and 2 are both fully explained in the Esri online documentation for ArcGIS Pro and ArcGIS Enterprise for Linux. To summarize though: on your desktop you will clone the default arcgispro-py3 environment using that option under the Python menu in ArcGIS Pro. Install your needed Python libraries to that newly cloned environment. Then on your Linux machine, you will create a new Python virtual environment using whatever method you wish. I used Conda. Add the Esri channel (similar to how one adds conda-forge - see the docs) and then install arcgis-server-py3. Perhaps obvious, but you must have ArcGIS Server or Enterprise installed and licensed on that Linux machine. Then add the Python libraries you need to that environment and point that environment in your scripts as above. I hope this helps but again, the Esri documentation should get you through those two steps. I wish you good success, Matt
... View more
09-12-2023
11:56 AM
|
1
|
0
|
649
|
POST
|
I have found a solution and one that is so simple I wish I had thought of it earlier. The workaround for not being able to install third-party Python libraries on Linux is to import them from another folder, in my case another conda environment that I created. Here are the steps that I used: On my local computer running ArcGIS Pro I cloned the arcgispro-py3 environment and installed the libraries I needed. On the Linux server running ArcGIS Server I used conda to create an environment and using conda installed arcgis-server-py3 and the libraries I needed. In my main script I imported sys and added two lines. Since apparently the ArcGISPro Runtime still runs on Wine, "Z:" is the drive for the server path: sys.path.insert(-1, "\\UNC path to server\path\to\server\environment\site-packages") sys.path.insert(-1, "Z:\path\to\server\environment\site-packages") These lines were added after other library imports and the paths appended to the end of the list (hence the -1) so that libraries in the active environment are loaded first. I ran the geoprocessing script in ArcGIS Pro then shared the result as a Web Tool. Finally I pointed my web app to the REST endpoint for the gp service. I am still trying to get the multiprocessing to work (tricky since it runs under Windows emulation) but other than that, it works. Hopefully this will help someone else who uses ArcGIS Enterprise on Linux and needs to use Python libraries not included in the default install.
... View more
08-31-2021
05:15 PM
|
1
|
0
|
1946
|
IDEA
|
I fully agree and feel that technical support parity could be taken even a step further. Far too often when requesting technical support for an issue with our ArcGIS Enterprise deployment on Linux, the analyst says something like, "I am not a Linux person but I will try to help you". I too often feel that Linux is not truly supported but rather offered as a courtesy to those who can't or won't run Windows.
... View more
08-23-2021
03:06 PM
|
0
|
0
|
759
|
IDEA
|
Make it possible to deploy third-party Python 3 packages to ArcGIS Enterprise/Server running on Linux. The ability is present on Windows so it should also be present on Linux operating systems. Support for Python 2.7 has ended some time ago and ArcMap is being deprecated in favor or ArcGIS Pro, which uses Python 3. Soon Linux users will lose the ability to write geoprocessing services in Python that utilize packages that are not included in the default ArcGIS Python environment. In our case that time has already come and we cannot go back to Python 2.7 and cannot move forward with Python 3 as Windows users can. There is apparently a strong interest to this topic if the number of views of my question to the community is an indication. To seriously support Linux as an operating system for ArcGIS Enterprise, this ability is a must.
... View more
08-23-2021
02:57 PM
|
0
|
0
|
721
|
POST
|
Hi Jon, Thank you for your reply. I really don't understand the logic of not supporting Python 3 geoprocessing on Server for Linux while at the same time pushing us toward using ArcGIS Pro, which uses Python 3. ArcMap is not being updated and Python 2.7 development was discontinued over a year ago and the libraries we need have moved on. This leaves those of us using Linux without a solution and from the number of views for this post, there are many of us. I am aware of using Python 3 from the command line. That is a solution for a different problem. If I am going to have to ask my users to utilize the command line I will just create a Flask app and bypass Server altogether. Perhaps we don't even need ArcGIS Enterprise at all? This situation has left me very disgruntled. Despite the phrase in your signature I can't keep on keeping on, I am dead in the water!
... View more
08-20-2021
11:22 AM
|
1
|
0
|
2016
|
POST
|
Using ArcGIS Pro 2.8 I successfully published a geoprocessing script written in Python 3 as a web tool to our Federated Portal running ArcGIS Enterprise 10.9 for Linux. I had cloned the arcgispro-py3 environment and added the Python packages needed to run the script. Attempting to run a job with that gp service fails because of the missing Python libraries. The documentation says that third-party Python 3 packages can't be installed on Linux, but that can't be entirely true because that would leave too many users unable to utilize their expensive software and hardware. Libraries I need are no longer available for Python 2.7. My questions: Does Portal use the arcgispro-py3 environment running under Wine? If so what is the correct process to clone that environment? My attempts have failed because of jupyter-notebook scripts failing. Is it safe to add packages to the arcgispro-py3 environment on Server? If I try to add packages to the default environment Conda wants to do a lot up updating for packages not in the '.pinned' file. I am really stuck here. Thanks in advance or any help or advice!
... View more
08-13-2021
02:12 PM
|
0
|
5
|
2949
|
POST
|
To answer my own question, this is how we resolved the problem of hosting web pages and running web adaptor on the same Linux machine, in our case Red Hat Enterprise Linux 7.6: It turns out that Tomcat can be configured as a reverse-proxy server using a servlet. I installed HTTPProxyServlet from http://www.servletsuite.com/servlets/httpproxy.htm and configured it to forward requests with '/apps' in the URL to Apache httpd. There are other more up-to-date servlets out there but this one was simple to configure and use. The Servlet (described above) matches a url path string (e.g. /apps), deletes it and everything after it, and forwards it to the web-server (httpd aka Apache) at http://yourserver.domain:port. Note it is not using SSL and in this case is listening to port 8080 (via a Virtual Host/Server). Port 8080 is blocked from external IP addresses for security. A ReWriteRule was added to httpd's Directives file (/etc/httpd/conf/httpd.conf) that adds the removed paths and whatever string was in the original url after them. So the final url looks like: '_/path1/path2/SomeStringHere' to follow the file system path to the web app content. Removing and replacing strings is necessary because the proxy is not dynamic; it only forwards to one endpoint. This workflow makes the requests dynamic. Currently it is necessary to have the trailing slash at the end of the string. If this '/' is missing any relative paths in the web app will be broken and the app will not load completely. IIS seems to do this automatically but I haven't figured out how to get httpd see the current directory as a root directory and load other content. Any suggestions on how to fix this would be appreciated. Hopefully this helps others who have a similar situation. Good luck!
... View more
04-27-2020
04:01 PM
|
0
|
0
|
461
|
POST
|
We are running ArcGIS Enterprise 10.7.1 on Red Hat Enterprise Linux. It is federated with both Server and Portal on the same system. Web Adaptor is configured and working and is required because we will need web-tier authentication. Because Web Adaptor only works with ports 80 and 443 we had to disable Apache (httpd) to avoid conflicts with Tomcat. How can we use one system to host our web apps and ArcGIS Enterprise?
... View more
03-12-2020
02:26 PM
|
0
|
1
|
525
|
POST
|
I was able to stop the autoplay by changing this line in the TimeSlider widget: 188 if (true === html.hasClass(this.playBtn, "pause")) { // changed from false to true and stopped the time stamp label from resetting to the first timestamp by commenting out this line in the TimeSlider widget: 413 this._updateTimeSliderUI(); I haven't tested it thoroughly to see how the changes impact other functions but it seems to have solved the problem for my purposes.
... View more
08-14-2017
01:12 PM
|
0
|
1
|
431
|
POST
|
Robert, Understood. Since your widget is so useful I will try to add the map services and hide them in the map, which WAB 2.1 layer list allows. Thank you for your time and your assistance, and of course for your widget. regards, Matt
... View more
08-18-2016
11:26 AM
|
1
|
0
|
1017
|
POST
|
I can confirm that both versions of the WAB and Identify widget are the same (2.1). This is an obvious oversight on my part but because I could not add Image Services to the Identify widget I tried using their matching Map Service url when configuring the Identify widget. Clearly the layers must be in the map to use them, rather than just be accessible through the REST endpoint. I changed the underlying Map to one with the map services and the Identify widget works. I apologize for not thinking of that sooner. So, I guess my issue now is whether the Identify widget works with Image Services, which according to the REST Services Directory shows that they do support Identify. I am unable to add the url (copied directly from the browser address bar) of an Image Service to the Identify widget configuration. Thank you.
... View more
08-18-2016
11:09 AM
|
0
|
2
|
1017
|
POST
|
I have tried adding the widget to a new app with no success. Previously I had deleted the entire WAB folder and unzipped it again fresh. I unzipped the updated Identify widget to the client folder. I then updated the app using the node.js commands. I get the same non-working results with Firefox as well - no request is sent when clicking on the map. thank you, Matt
... View more
08-18-2016
10:24 AM
|
0
|
1
|
1017
|
POST
|
Hi Robert, I upgraded WAB from 1.4 and the Identify widget from 1.3.0.1. There are no errors reported in the Chrome (vers. 52.0.2743.116 m) Dev Tools console and no indication in the Network tab that a REST request is sent when clicking on the map with any combination of settings. Only the one non-time-enabled layer shows a REST request. This occurs running locally with Node.js as I have not tried to publish the new app yet. thank you, Matt
... View more
08-17-2016
08:41 PM
|
0
|
1
|
1017
|
POST
|
I have upgraded WebAppBuilder to 2.1 and thus the Identify Widget to 2.1, and now Identify does not work with my dynamic map services. Although in settings the urls for the map layers are ok (green checkmark) only the same one layer returns a value. The Developer Tools network tab does not show a request sent to the server for any of the other layers when clicking on the map. The one service that works is the only service that is not time-enabled. I have checked the use map time box. Possibly related is the fact that I cannot add an image service even though the server responds correctly with the service info. I get the error that the url is incorrect. I upgraded by adding the new unzipped identify folder to client then upgrading through node.js. Using ArcGIS Server 10.3.1 with Portal. Any help or insight is appreciated! Identify Widget Version 2.1 - 07/20/2016 Robert Scheitlin, GISP
... View more
08-17-2016
04:26 PM
|
0
|
8
|
1961
|
Title | Kudos | Posted |
---|---|---|
1 | 09-12-2023 11:56 AM | |
1 | 08-31-2021 05:15 PM | |
1 | 08-20-2021 11:22 AM | |
1 | 08-18-2016 11:26 AM |
Online Status |
Offline
|
Date Last Visited |
11-03-2023
12:58 PM
|