-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
python.exe not found #381
Comments
It'll be much easier to help if you give the full sequence of steps you did to get to that error, plus the full error message. |
My guess though is that your antivirus deleted python.exe after it was installed. |
add PythonCall ] conda resolve This is the error I get:
critical libmamba remove: Access is denied.: "\PROD-FILE\XXXX$\User\gsinha.julia\dev\Clover.CondaPkg\env\DLLs_ctypes.pyd.mamba_trash" Stacktrace: I am having the anti-virus looked into - thanks for your tip on that. |
After this step, I do the followiing after exiting Julia entirely: julia> using PythonCall caused by: IOError: could not spawn |
Can you remove that |
I am running into a similar behaviour by first installing some packages with CondaPkg, before even installing PythonCall. It seems to me that this order is not supported currently. A workaround is to first install PythonCall into the environment before the first time Unfortunately that workaround does not work for me, because my package depends on RCall, which I like to build on top of CondaPkg. However unlike PythonCall, RCall requires a ready R installation before it can be installed, hence I need to So for me the only workaround left is to
|
@schlichtanders That order should definitely work. Can you give the sequence of steps to reproduce your error? And also give the full error you see. |
It was similar to julia -e 'import Pkg; \
Pkg.Registry.add("General"); \
Pkg.add("CondaPkg"); \
import CondaPkg; \
CondaPkg.add("r-base"); \
ENV["R_HOME"] = CondaPkg.envdir() * "/lib/R"; \
Pkg.add("RCall"); \
Pkg.add("PythonCall"); \
Pkg.precompile(); \
' |
Here a complete reproducible example
julia -e 'import Pkg; \
Pkg.Registry.add("General"); \
Pkg.add("CondaPkg"); \
import CondaPkg; \
CondaPkg.add("r-base"); \
ENV["R_HOME"] = CondaPkg.envdir() * "/lib/R"; \
Pkg.add("RCall"); \
Pkg.add("PythonCall"); \
Pkg.precompile(); \
'
then the output is
Note that this is only a dummy example. Instead of
The ideal solution for me would be that RCall is resolving its dependency dynamically, but as of now it is not foreseeable if this will ever happen. It would be great if CondaPkg can resolve newly added other julia dependencies which also include CondaPkg dependencies. |
Ok I see, so the issue is that you (implicitly) resolve the Conda environment in order to build RCall and then load some other packages, which also have Conda dependencies, and these aren't installed because CondaPkg doesn't auto resolve this time. The reason for this is that CondaPkg doesn't resolve if you've already resolved, unless you explicitly add any packages. A nice solution that I think you were getting at is to also resolve if the installed Julia packages change. Is it possible to cheaply detect if the Julia environment has changed? Maybe Pkg tracks the time that the last resolve happened? Or we could see if |
Ok after a discussion on Slack the best approach seems to be to check if the mtime/hash of Manifest.toml changed since the last resolve. |
Sounds great! Thank you for inspecting/discussing this further |
IOError: could not spawn
'H:\.julia\environments\v1.9\.CondaPkg\env\python.exe' --version
: no such file or directory (ENOENT)It looks like the python executable isn't there at all after "add PythonCall" - any ideas why this may be happening.
The text was updated successfully, but these errors were encountered: