Discussion:
[conda] Installing python packages in host prefix
Matt Chan
2018-09-14 06:59:24 UTC
Permalink
Hi Everyone,

I'm having trouble with my conda builds after updating from conda-build 3.0
to 3.14.

I think prior to v3.1.4, the build and the install occurred in the same
prefix. Commands like
setup.py install

would just put the executables, libs, etc. in the host prefix and it would
get packaged no problem.

After 3.1.4, the builds and installs happen in separate build and host
prefixes and they don't seem to be getting merged.
setup.py install
puts code in the build prefix and conda-build complains about an empty
python package later in the build process.

I'm having trouble installing my package into the host prefix directly
though. I can issue commands like
setup.py install --prefix="${PREFIX}"
but it fails because the interpreter is still running in the build prefix
and it doesn't have the host prefix in the PYTHONPATH. It complains like
this:


Checking .pth file support in /<host_prefix>/lib/python3.7/site-packages/
/<build_prefix>/bin/python -E -c pass
TEST FAILED:/<host_prefix>/lib/python3.7/site-packages/ does NOT support
.pth files
error: bad install directory or PYTHONPATH
You are attempting to install a package to a directory that is not
on PYTHONPATH and which Python does not read ".pth" files from. The
installation directory you specified (via --install-dir, --prefix, or
/<host_prefix>/lib/python3.7/site-packages/
''
* You can choose a different installation directory, i.e., one that is
on PYTHONPATH or supports .pth files
* You can add the installation directory to the PYTHONPATH environment
variable. (It must then also be on PYTHONPATH whenever you run
Python and want to use the package(s) you are installing.)
* You can set up the installation directory to support ".pth" files by
https://setuptools.readthedocs.io/en/latest/easy_install.html#custom-installation-locations
Please make the appropriate changes for your system and try again.
The solution seems to be add the PYTHONPATH into the build.sh script:
PYTHONPATH=PYTHONPATH:$SP_DIR setup.py install --prefix="${PREFIX}"
but the $SP_DIR variable incorrectly gives the wrong version of python.

I can't be the only one who's run into this problem since v3.1.4... How
have other people been getting around it?

Thanks!
Matt
--
You received this message because you are subscribed to the Google Groups "conda - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to conda+***@continuum.io.
To post to this group, send email to ***@continuum.io.
Visit this group at https://groups.google.com/a/continuum.io/group/conda/.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/conda/89ed10f8-b1cf-4625-b0be-ce6fcd140af4%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.
Matt Chan
2018-09-14 07:27:03 UTC
Permalink
As usual, you always find the answer right after sending the email...

I figured it out. I was missing the "host" section since it was an older
meta.yaml. Everything's making more sense now.

Sorry for the additional noise!
Matt
Post by Matt Chan
Hi Everyone,
I'm having trouble with my conda builds after updating from conda-build
3.0 to 3.14.
I think prior to v3.1.4, the build and the install occurred in the same
prefix. Commands like
setup.py install
would just put the executables, libs, etc. in the host prefix and it would
get packaged no problem.
After 3.1.4, the builds and installs happen in separate build and host
prefixes and they don't seem to be getting merged.
setup.py install
puts code in the build prefix and conda-build complains about an empty
python package later in the build process.
I'm having trouble installing my package into the host prefix directly
though. I can issue commands like
setup.py install --prefix="${PREFIX}"
but it fails because the interpreter is still running in the build prefix
and it doesn't have the host prefix in the PYTHONPATH. It complains like
Checking .pth file support in /<host_prefix>/lib/python3.7/site-packages/
/<build_prefix>/bin/python -E -c pass
TEST FAILED:/<host_prefix>/lib/python3.7/site-packages/ does NOT support
.pth files
error: bad install directory or PYTHONPATH
You are attempting to install a package to a directory that is not
on PYTHONPATH and which Python does not read ".pth" files from. The
installation directory you specified (via --install-dir, --prefix, or
/<host_prefix>/lib/python3.7/site-packages/
''
* You can choose a different installation directory, i.e., one that is
on PYTHONPATH or supports .pth files
* You can add the installation directory to the PYTHONPATH environment
variable. (It must then also be on PYTHONPATH whenever you run
Python and want to use the package(s) you are installing.)
* You can set up the installation directory to support ".pth" files by
https://setuptools.readthedocs.io/en/latest/easy_install.html#custom-installation-locations
Please make the appropriate changes for your system and try again.
PYTHONPATH=PYTHONPATH:$SP_DIR setup.py install --prefix="${PREFIX}"
but the $SP_DIR variable incorrectly gives the wrong version of python.
I can't be the only one who's run into this problem since v3.1.4... How
have other people been getting around it?
Thanks!
Matt
--
You received this message because you are subscribed to the Google Groups "conda - Public" group.
To unsubscribe from this group and stop receiving emails from it, send an email to conda+***@continuum.io.
To post to this group, send email to ***@continuum.io.
Visit this group at https://groups.google.com/a/continuum.io/group/conda/.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/conda/d40fb02c-79d1-401f-b4f7-1ab7e600e767%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/d/optout.
Loading...