JuliaPy / Conda.jl

Conda managing Julia binary dependencies
Other
172 stars 57 forks source link

change python verison #189

Closed jamesthesnake closed 3 years ago

jamesthesnake commented 3 years ago

If I put this in my code

ENV["PYTHON"] = "/usr/bin/python3.6" pkg"build PyCall" using PyCall I thought it was supposed to change my python version, but I'm stlil getting 3.8 from the conda.jl? How would I change the python version in the code

mkschulze commented 3 years ago

yea, would also like to know. I want to install a package to be used in PyCall, but it doesn't build with Python 3.8, so I would need to have Conda.jl using 3.7. I tried the way how to switch version to Python 2, but that doesn't work and errors when building Conda.

ENV["CONDA_JL_VERSION"]="3.7.8"

stevengj commented 3 years ago
  1. If you build PyCall with ENV["PYTHON"] = "/usr/bin/python3.6" then PyCall will no longer use Conda's Python at all.

  2. If you have already imported PyCall, you will need to restart Julia after re-building for the new configuration to of PyCall take effect. (You only need to re-build once and PyCall will remember your Python setting.)

  3. The PYTHON environment variable has no effect on Conda.jl. Conda.jl does not use PyCall (PyCall can use Conda.jl, not the other way around).

  4. CONDA_JL_VERSION can only be 2 or 3. To install a specific Python subversion, you can use Conda.add("python=3.7.8") or similar IIRC.

mkschulze commented 3 years ago

yes, got it working fine without Conda now. But when you want to use Conda as a pkg manager and PyCall in addition (on Top), you have to use the root Python version Conda.jl comes with. And that is fixed to the miniconda package it comes with, currently it holds a Python 3.8 version. In case you would want to use Conda.jl with a Python 3.7 and PyCall on Top, there is no way to get this going afaics.