I am trying to package some of my Python code that calls R code using rpy2. That R code currently sits in a separate file which I source
from the Python script. For
Well, imagine yourself as the setuptools packager and think of what you would expect the programmer to do.
For the first problem, you have two choices:
The first option is implementable by passing include_package_data = True
to setup()
and providing masks of files to include in package_data
(setuptools docs, "Including Data Files" section). Paths relative to packages' directories can be used. The files will be accessible at run time at the same relative paths through the "Resource Management API" ("Accessing Data Files at Runtime" section).
The second option would require you to add your code to setuptools before invoking setup()
. For example, you may add a file finder to add relevant .R files to the results of find_packages()
. Or just generate the list of files for the previous paragraph by arbitrary means.
For the second problem, the easiest way is to force setuptools to install the package as a directory rather than an .egg by specifying zip_safe = False.
You might use eager_resources
option instead that extracts a group of resources on demand ("Automatic Resource Extraction" section).
As for installing third-party R packages, an automatable technique is described at R Installation and Administration - Installing packages