user/py3-rpy2: new aport
This commit is contained in:
parent
a9536da00e
commit
cf8ea20507
2 changed files with 89 additions and 0 deletions
34
user/py3-rpy2/APKBUILD
Normal file
34
user/py3-rpy2/APKBUILD
Normal file
|
@ -0,0 +1,34 @@
|
|||
# Maintainer: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
# Contributor: Antoine Martin (ayakael) <dev@ayakael.net>
|
||||
|
||||
pkgname=py3-rpy2
|
||||
_pyname="rpy2"
|
||||
pkgver=3.5.11
|
||||
pkgrel=0
|
||||
arch="all"
|
||||
pkgdesc="A very simple, yet robust, Python interface to the R Programming Language"
|
||||
url="https://pypi.python.org/project/$_pyname"
|
||||
license="GPL-2.0"
|
||||
depends='python3-dev py3-cffi py3-numpy py3-tz py3-tzlocal py3-jinja2 R'
|
||||
makedepends='py3-build py3-installer py3-setuptools py3-wheel'
|
||||
checkdepends='py3-pytest'
|
||||
options="!check" # test failure
|
||||
source="$pkgname-$pkgver.tar.gz::https://pypi.io/packages/source/${_pyname:0:1}/$_pyname/$_pyname-$pkgver.tar.gz"
|
||||
builddir="$srcdir"/$_pyname-$pkgver
|
||||
|
||||
build() {
|
||||
python3 -m build --wheel --no-isolation
|
||||
}
|
||||
|
||||
check() {
|
||||
PYTHONPATH="$PWD"/$(echo build/lib.*) \
|
||||
pytest -v -k 'not test_rendertofile and not test_rendertobytes_plot' # Skip test that segfaults in build server
|
||||
}
|
||||
|
||||
package() {
|
||||
python3 -m installer --destdir="$pkgdir" dist/*.whl
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
c0becf26f19c9f9e34033bde12bc34f1322cbc7ca215e1081b27689a62d6c9a012ab4478e4c867e510d519bc475c2b27ee93f43a0b513dd3f2c0bea2389b9862 py3-rpy2-3.5.11.tar.gz
|
||||
"
|
|
@ -0,0 +1,55 @@
|
|||
From c8a0c67b1c4da9054e542714a43fef12ecbc4222 Mon Sep 17 00:00:00 2001
|
||||
From: Laurent Gautier <lgautier@gmail.com>
|
||||
Date: Sun, 5 Dec 2021 21:31:23 -0500
|
||||
Subject: [PATCH] Set LD_LIBRARY_PATH before initializing R.
|
||||
|
||||
(issue #833).
|
||||
---
|
||||
NEWS | 3 +++
|
||||
rpy2/rinterface_lib/embedded.py | 6 ++++++
|
||||
rpy2/rinterface_lib/openrlib.py | 1 +
|
||||
3 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/NEWS b/NEWS
|
||||
index cf15215c..aac6ae2c 100644
|
||||
--- a/NEWS
|
||||
+++ b/NEWS
|
||||
@@ -33,6 +33,9 @@ Changes
|
||||
- :obj:`rpy2.rinterface.NULL` can be refererenced in code before the embedded
|
||||
R is initialized.
|
||||
|
||||
+- `LD_LIBRARY_PATH` is obtained from the executable `RScript` and set prior
|
||||
+ to initializing R at the rinterface level (issue #833).
|
||||
+
|
||||
Bugs fixed
|
||||
----------
|
||||
|
||||
diff --git a/rpy2/rinterface_lib/embedded.py b/rpy2/rinterface_lib/embedded.py
|
||||
index 8d2ad651..978630ec 100644
|
||||
--- a/rpy2/rinterface_lib/embedded.py
|
||||
+++ b/rpy2/rinterface_lib/embedded.py
|
||||
@@ -255,6 +255,12 @@ def _initr(
|
||||
_setinitialized()
|
||||
return None
|
||||
os.environ['R_HOME'] = openrlib.R_HOME
|
||||
+ os.environ['LD_LIBRARY_PATH'] = (
|
||||
+ ':'.join(
|
||||
+ (openrlib.LD_LIBRARY_PATH,
|
||||
+ os.environ.get('LD_LIBRARY_PATH', ''))
|
||||
+ )
|
||||
+ )
|
||||
options_c = [ffi.new('char[]', o.encode('ASCII')) for o in _options]
|
||||
n_options = len(options_c)
|
||||
n_options_c = ffi.cast('int', n_options)
|
||||
diff --git a/rpy2/rinterface_lib/openrlib.py b/rpy2/rinterface_lib/openrlib.py
|
||||
index 9254fa73..2e183481 100644
|
||||
--- a/rpy2/rinterface_lib/openrlib.py
|
||||
+++ b/rpy2/rinterface_lib/openrlib.py
|
||||
@@ -20,6 +20,7 @@
|
||||
# TODO: Separate the functions in the module from the side-effect of
|
||||
# finding R_HOME and opening the shared library.
|
||||
R_HOME = rpy2.situation.get_r_home()
|
||||
+LD_LIBRARY_PATH = rpy2.situation.r_ld_library_path_from_subprocess(R_HOME)
|
||||
rlock = threading.RLock()
|
||||
|
||||
|
Loading…
Reference in a new issue