X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/779c5400a4f376489f4abc8564f890f309ae3f20..927524f1be454de021180b74999d682780b8cb6b:/doc/sdk/python/sdk-python.html.textile.liquid diff --git a/doc/sdk/python/sdk-python.html.textile.liquid b/doc/sdk/python/sdk-python.html.textile.liquid index 0b0f77d377..435f70e7bf 100644 --- a/doc/sdk/python/sdk-python.html.textile.liquid +++ b/doc/sdk/python/sdk-python.html.textile.liquid @@ -2,77 +2,60 @@ layout: default navsection: sdk navmenu: Python -title: "Python SDK" - +title: "Installation" ... +{% comment %} +Copyright (C) The Arvados Authors. All rights reserved. + +SPDX-License-Identifier: CC-BY-SA-3.0 +{% endcomment %} -The Python SDK provides access from Python to the Arvados API and Keep. It also includes a number of command line tools for using and administering Arvados and Keep, and some conveniences for use in Crunch scripts; see "Crunch utility libraries":crunch-utility-libraries.html for details. +The Python SDK provides access from Python to the Arvados API and Keep, along with a number of command line tools for using and administering Arvados and Keep. -h3. Installation +h2. Installation If you are logged in to an Arvados VM, the Python SDK should be installed. -To use the Python SDK elsewhere, you can install from a distribution package, PyPI, or source. +To use the Python SDK elsewhere, you can install from PyPI or a distribution package. -{% include 'notebox_begin' %} -The Python SDK requires Python 2.7. -{% include 'notebox_end' %} +As of Arvados 2.2, the Python SDK requires Python 3.6+. The last version to support Python 2.7 is Arvados 2.0.4. -h4. Option 1: Install from distribution packages +h2. Option 1: Install from a distribution package -First, "add the appropriate package repository for your distribution":{{ site.baseurl }}/install/install-manual-prerequisites.html#repos. +This installation method is recommended to make the CLI tools available system-wide. It can coexist with the installation method described in option 2, below. -{% assign rh_version = "6" %} -{% include 'note_python_sc' %} +First, configure the "Arvados package repositories":../../install/packages.html -On CentOS 6 and RHEL 6: +{% assign arvados_component = 'python3-arvados-python-client' %} - -
~$ sudo yum install python27-python-arvados-python-client
-
-
- -On other Red Hat-based systems: +{% include 'install_packages' %} - -
~$ sudo yum install python-arvados-python-client
-
-
- -On Debian-based systems: - - -
~$ sudo apt-get install python-arvados-python-client
-
-
+h2. Option 2: Install with pip -h4. Option 2: Install with pip +This installation method is recommended to use the SDK in your own Python programs. If installed into a @virtualenv@, it can coexist with the system-wide installation method from a distribution package. -Run @pip-2.7 install arvados-python-client@ in an appropriate installation environment, such as a virtualenv. +Run @pip install arvados-python-client@ in an appropriate installation environment, such as a @virtualenv@. -If your version of @pip@ is 1.4 or newer, the @pip install@ command might give an error: "Could not find a version that satisfies the requirement arvados-python-client". If this happens, try @pip-2.7 install --pre arvados-python-client@. +Note: -h4. Option 3: Install from source +The SDK uses @pycurl@ which depends on the @libcurl@ C library. To build the module you may have to first install additional packages. On Debian 10 this is: -Install the @python-setuptools@ package from your distribution. Then run the following: +
+$ apt-get install git build-essential python3-dev libcurl4-openssl-dev libssl-dev
+
- -
~$ git clone https://github.com/curoverse/arvados.git
-~$ cd arvados/sdk/python
-~/arvados/sdk/python$ python2.7 setup.py install
-
-
+If your version of @pip@ is 1.4 or newer, the @pip install@ command might give an error: "Could not find a version that satisfies the requirement arvados-python-client". If this happens, try @pip install --pre arvados-python-client@. -You may optionally run the final installation command in a virtualenv, or with the @--user@ option. +h2. Test installation -h4. Test installation +If the SDK is installed and your @ARVADOS_API_HOST@ and @ARVADOS_API_TOKEN@ environment variables are set up correctly (see "api-tokens":{{site.baseurl}}/user/reference/api-tokens.html for details), @import arvados@ should produce no errors. -If the SDK is installed and your @ARVADOS_API_HOST@ and @ARVADOS_API_TOKEN@ environment variables are set up correctly (see "api-tokens":{{site.baseurl}}/user/reference/api-tokens.html for details), @import arvados@ should produce no errors: +If you installed with pip (option 1, above): -
~$ python2.7
-Python 2.7.4 (default, Sep 26 2013, 03:20:26)
-[GCC 4.7.3] on linux2
+
~$ python
+Python 3.7.3 (default, Jul 25 2020, 13:03:44)
+[GCC 8.3.0] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import arvados
 >>> arvados.api('v1')
@@ -80,56 +63,36 @@ Type "help", "copyright", "credits" or "license" for more information.
 
-h3. Examples - -Get the User object for the current user: +If you installed from a distribution package (option 2): the package includes a virtualenv, which means the correct Python environment needs to be loaded before the Arvados SDK can be imported. This can be done by activating the virtualenv first: -
current_user = arvados.api('v1').users().current().execute()
-
-
- -Get the UUID of an object that was retrieved using the SDK: - - -
my_uuid = current_user['uuid']
-
-
- -Retrieve an object by ID: - - -
some_user = arvados.api('v1').users().get(uuid=my_uuid).execute()
-
-
- -Create an object: - - -
test_link = arvados.api('v1').links().create(
-    body={'link_class':'test','name':'test'}).execute()
-
+
~$ source /usr/share/python3/dist/python3-arvados-python-client/bin/activate
+(python-arvados-python-client) ~$ python
+Python 3.7.3 (default, Jul 25 2020, 13:03:44)
+[GCC 8.3.0] on linux
+Type "help", "copyright", "credits" or "license" for more information.
+>>> import arvados
+>>> arvados.api('v1')
+<apiclient.discovery.Resource object at 0x233bb50>
+
-Update an object: +Or alternatively, by using the Python executable from the virtualenv directly: -
arvados.api('v1').links().update(
-    uuid=test_link['uuid'],
-    body={'properties':{'foo':'bar'}}).execute()
-
+
~$ /usr/share/python3/dist/python3-arvados-python-client/bin/python
+Python 3.7.3 (default, Jul 25 2020, 13:03:44)
+[GCC 8.3.0] on linux
+Type "help", "copyright", "credits" or "license" for more information.
+>>> import arvados
+>>> arvados.api('v1')
+<apiclient.discovery.Resource object at 0x233bb50>
+
-Get a list of objects: +h2. Usage - -
repos = arvados.api('v1').repositories().list().execute()
-len(repos['items'])
-2
-repos['items'][0]['uuid']
-u'qr1hi-s0uqq-kg8cawglrf74bmw'
-
-
+Check out the "examples":example.html and "cookbook":cookbook.html h3. Notes