JuliaPy / JuliaPy/PyCall.jl

`pyimport` not working on NixOS

Aperta
#909 1 commento 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Julia
Stelle
1.5k
Fork
186
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

`PyCall.pyimport("matplotlib")` produces:
```
ERROR: PyError (PyImport_ImportModule

The Python package matplotlib could not be imported by pyimport. Usually this means
that you did not install matplotlib in the Python version being used by PyCall.

PyCall is currently configured to use the Python version at:

/nix/store/58zz1ci0b4y6r6ypsl3ggz8fkqjl805f-python3-3.8.9-env/bin/python3.8

and you should use whatever mechanism you usually use (apt-get, pip, conda,
etcetera) to install the Python package containing the matplotlib module.

One alternative is to re-configure PyCall to use a different Python
version on your system: set ENV["PYTHON"] to the path/name of the python
executable you want to use, run Pkg.build("PyCall"), and re-launch Julia.

Another alternative is to configure PyCall to use a Julia-specific Python
distribution via the Conda.jl package (which installs a private Anaconda
Python distribution), which has the advantage that packages can be installed
and kept up-to-date via Julia. As explained in the PyCall documentation,
set ENV["PYTHON"]="", run Pkg.build("PyCall"), and re-launch Julia. Then,
To install the matplotlib module, you can use `pyimport_conda("matplotlib", PKG)`,
where PKG is the Anaconda package that contains the module matplotlib,
or alternatively you can use the Conda package directly (via
`using Conda` followed by `Conda.add` etcetera).

)
ModuleNotFoundError("No module named 'matplotlib'")
```

But running `/nix/store/58zz1ci0b4y6r6ypsl3ggz8fkqjl805f-python3-3.8.9-env/bin/python3.8 -c "import matplotlib"` does not fail, so the interpreter is actually able to find the requested module.

Using PyCall v1.92.3

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Start at the PyCall.pyimport entry point and reproduce the failure with the NixOS Python interpreter shown in the report. Compare that invocation with the direct Python command that successfully imports matplotlib. Done means pyimport can import matplotlib in the reported NixOS setup, with the relevant behavior covered by a regression check if the project provides one.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
julia, matplotlib, python
Ambito
tooling
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.